{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# pip install tushare\n",
    "# pip install keras_sequential_ascii"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Part 1 - Data Preprocessing\n",
    "# Importing the libraries导入需要的库\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import tushare as ts\n",
    "import keras\n",
    "from keras.layers import Dense, LSTM, Dropout, GRU, Bidirectional\n",
    "from keras.callbacks import EarlyStopping, ModelCheckpoint\n",
    "from keras.models import load_model "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# set the seed_num\n",
    "import json\n",
    "import os\n",
    "import random\n",
    "import tensorflow as tf\n",
    "seed_num = 42\n",
    "os.environ['PYTHONHASHSEED']=str(seed_num)\n",
    "random.seed(seed_num)\n",
    "np.random.seed(seed_num)\n",
    "tf.random.set_seed(seed_num)\n",
    "from tensorflow.compat.v1.keras import backend as K\n",
    "session_conf = tf.compat.v1.ConfigProto(intra_op_parallelism_threads=1,\n",
    "                             inter_op_parallelism_threads=1)\n",
    "sess=tf.compat.v1.Session(graph=tf.compat.v1.get_default_graph(),config=session_conf)\n",
    "K.set_session(sess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# early stopping\n",
    "earlystop = EarlyStopping(monitor='val_loss',\n",
    "                          min_delta=0,\n",
    "                          patience=20,\n",
    "                          verbose=2)\n",
    "\n",
    "mc = ModelCheckpoint(filepath='best_model.h5',\n",
    "                     monitor='val_acc',\n",
    "                     mode='max',\n",
    "                     verbose=1,\n",
    "                     save_best_only=True) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date</th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1990-01-02</td>\n",
       "      <td>23.68750</td>\n",
       "      <td>24.53125</td>\n",
       "      <td>23.62500</td>\n",
       "      <td>24.50000</td>\n",
       "      <td>6.590755</td>\n",
       "      <td>7041600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1990-01-03</td>\n",
       "      <td>24.68750</td>\n",
       "      <td>24.87500</td>\n",
       "      <td>24.59375</td>\n",
       "      <td>24.71875</td>\n",
       "      <td>6.649599</td>\n",
       "      <td>9464000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1990-01-04</td>\n",
       "      <td>24.75000</td>\n",
       "      <td>25.09375</td>\n",
       "      <td>24.71875</td>\n",
       "      <td>25.00000</td>\n",
       "      <td>6.725261</td>\n",
       "      <td>9674800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1990-01-05</td>\n",
       "      <td>24.96875</td>\n",
       "      <td>25.40625</td>\n",
       "      <td>24.87500</td>\n",
       "      <td>24.93750</td>\n",
       "      <td>6.708448</td>\n",
       "      <td>7570000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1990-01-08</td>\n",
       "      <td>24.81250</td>\n",
       "      <td>25.21875</td>\n",
       "      <td>24.81250</td>\n",
       "      <td>25.09375</td>\n",
       "      <td>6.750481</td>\n",
       "      <td>4625200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Date      Open      High       Low     Close  Adj Close   Volume\n",
       "0  1990-01-02  23.68750  24.53125  23.62500  24.50000   6.590755  7041600\n",
       "1  1990-01-03  24.68750  24.87500  24.59375  24.71875   6.649599  9464000\n",
       "2  1990-01-04  24.75000  25.09375  24.71875  25.00000   6.725261  9674800\n",
       "3  1990-01-05  24.96875  25.40625  24.87500  24.93750   6.708448  7570000\n",
       "4  1990-01-08  24.81250  25.21875  24.81250  25.09375   6.750481  4625200"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取数据\n",
    "data = pd.read_csv('IBM.csv') #这里改成自己的文件路径\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         Date      Open      High       Low     Close  Adj Close   Volume\n",
      "0  1990-01-02  23.68750  24.53125  23.62500  24.50000   6.590755  7041600\n",
      "1  1990-01-03  24.68750  24.87500  24.59375  24.71875   6.649599  9464000\n",
      "2  1990-01-04  24.75000  25.09375  24.71875  25.00000   6.725261  9674800\n",
      "3  1990-01-05  24.96875  25.40625  24.87500  24.93750   6.708448  7570000\n",
      "4  1990-01-08  24.81250  25.21875  24.81250  25.09375   6.750481  4625200\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>23.68750</td>\n",
       "      <td>24.53125</td>\n",
       "      <td>23.62500</td>\n",
       "      <td>24.50000</td>\n",
       "      <td>6.590755</td>\n",
       "      <td>7041600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>24.68750</td>\n",
       "      <td>24.87500</td>\n",
       "      <td>24.59375</td>\n",
       "      <td>24.71875</td>\n",
       "      <td>6.649599</td>\n",
       "      <td>9464000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>24.75000</td>\n",
       "      <td>25.09375</td>\n",
       "      <td>24.71875</td>\n",
       "      <td>25.00000</td>\n",
       "      <td>6.725261</td>\n",
       "      <td>9674800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>24.96875</td>\n",
       "      <td>25.40625</td>\n",
       "      <td>24.87500</td>\n",
       "      <td>24.93750</td>\n",
       "      <td>6.708448</td>\n",
       "      <td>7570000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>24.81250</td>\n",
       "      <td>25.21875</td>\n",
       "      <td>24.81250</td>\n",
       "      <td>25.09375</td>\n",
       "      <td>6.750481</td>\n",
       "      <td>4625200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Open      High       Low     Close  Adj Close   Volume\n",
       "0  23.68750  24.53125  23.62500  24.50000   6.590755  7041600\n",
       "1  24.68750  24.87500  24.59375  24.71875   6.649599  9464000\n",
       "2  24.75000  25.09375  24.71875  25.00000   6.725261  9674800\n",
       "3  24.96875  25.40625  24.87500  24.93750   6.708448  7570000\n",
       "4  24.81250  25.21875  24.81250  25.09375   6.750481  4625200"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#显示数据集的前几行，查看样式\n",
    "print(data.head())\n",
    "all_data = data.iloc[:, 1:7]\n",
    "all_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "all_data = all_data.loc[:,['Open', 'Close', \"High\", \"Low\", \"Volume\", \"Adj Close\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 7278 entries, 0 to 7277\n",
      "Data columns (total 6 columns):\n",
      " #   Column     Non-Null Count  Dtype  \n",
      "---  ------     --------------  -----  \n",
      " 0   Open       7278 non-null   float64\n",
      " 1   Close      7278 non-null   float64\n",
      " 2   High       7278 non-null   float64\n",
      " 3   Low        7278 non-null   float64\n",
      " 4   Volume     7278 non-null   int64  \n",
      " 5   Adj Close  7278 non-null   float64\n",
      "dtypes: float64(5), int64(1)\n",
      "memory usage: 341.3 KB\n"
     ]
    }
   ],
   "source": [
    "all_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>Close</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Volume</th>\n",
       "      <th>Adj Close</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>7278.000000</td>\n",
       "      <td>7278.000000</td>\n",
       "      <td>7278.000000</td>\n",
       "      <td>7278.000000</td>\n",
       "      <td>7.278000e+03</td>\n",
       "      <td>7278.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>97.111166</td>\n",
       "      <td>97.150037</td>\n",
       "      <td>98.032100</td>\n",
       "      <td>96.250604</td>\n",
       "      <td>7.374148e+06</td>\n",
       "      <td>75.033509</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>56.722461</td>\n",
       "      <td>56.748006</td>\n",
       "      <td>57.089386</td>\n",
       "      <td>56.386388</td>\n",
       "      <td>4.612416e+06</td>\n",
       "      <td>51.126516</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>10.250000</td>\n",
       "      <td>10.250000</td>\n",
       "      <td>10.437500</td>\n",
       "      <td>10.156250</td>\n",
       "      <td>6.528000e+05</td>\n",
       "      <td>5.663548</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>38.812500</td>\n",
       "      <td>38.937500</td>\n",
       "      <td>39.593750</td>\n",
       "      <td>38.414062</td>\n",
       "      <td>4.477975e+06</td>\n",
       "      <td>25.615211</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>94.642502</td>\n",
       "      <td>94.584999</td>\n",
       "      <td>95.606251</td>\n",
       "      <td>93.555001</td>\n",
       "      <td>6.245800e+06</td>\n",
       "      <td>67.877994</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>144.217502</td>\n",
       "      <td>144.120003</td>\n",
       "      <td>145.000000</td>\n",
       "      <td>143.114997</td>\n",
       "      <td>8.843625e+06</td>\n",
       "      <td>126.280022</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>215.380005</td>\n",
       "      <td>215.800003</td>\n",
       "      <td>215.899994</td>\n",
       "      <td>214.300003</td>\n",
       "      <td>6.944470e+07</td>\n",
       "      <td>175.264389</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Open        Close         High          Low        Volume  \\\n",
       "count  7278.000000  7278.000000  7278.000000  7278.000000  7.278000e+03   \n",
       "mean     97.111166    97.150037    98.032100    96.250604  7.374148e+06   \n",
       "std      56.722461    56.748006    57.089386    56.386388  4.612416e+06   \n",
       "min      10.250000    10.250000    10.437500    10.156250  6.528000e+05   \n",
       "25%      38.812500    38.937500    39.593750    38.414062  4.477975e+06   \n",
       "50%      94.642502    94.584999    95.606251    93.555001  6.245800e+06   \n",
       "75%     144.217502   144.120003   145.000000   143.114997  8.843625e+06   \n",
       "max     215.380005   215.800003   215.899994   214.300003  6.944470e+07   \n",
       "\n",
       "         Adj Close  \n",
       "count  7278.000000  \n",
       "mean     75.033509  \n",
       "std      51.126516  \n",
       "min       5.663548  \n",
       "25%      25.615211  \n",
       "50%      67.877994  \n",
       "75%     126.280022  \n",
       "max     175.264389  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x1080 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "all_data.hist(bins = 50 , figsize = (20, 15))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0.06550724 0.0693262  0.06859524 0.06597679 0.0928714  0.005467  ]\n",
      " [0.07038219 0.07039041 0.0702683  0.07072222 0.12808485 0.00581395]\n",
      " [0.07068688 0.0717587  0.07133297 0.07133454 0.13114916 0.00626007]\n",
      " ...\n",
      " [0.54082776 0.53801992 0.54419908 0.53758075 0.04988378 0.67910305]\n",
      " [0.54043776 0.53490633 0.54264162 0.53694392 0.05973814 0.67532949]\n",
      " [0.53336909 0.54093895 0.54025676 0.53567033 0.06621564 0.6826408 ]]\n",
      "训练数据长度是: 7278\n"
     ]
    }
   ],
   "source": [
    "# Feature Scaling特征归一化，归一化很重要，消除量纲的差异。\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "sc = MinMaxScaler(feature_range = (0, 1),)\n",
    "all_data_scaled = sc.fit_transform(all_data)\n",
    "print(all_data_scaled)\n",
    "print('训练数据长度是:',len(all_data_scaled))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "shape of x_train: (6550, 60, 6)\n",
      "shape of x_val: (364, 60, 6)\n",
      "shape of x_test: (304, 60, 6)\n",
      "shape of y_train: (6550,)\n",
      "shape of y_val: (364,)\n",
      "shape of y_test: (304,)\n"
     ]
    }
   ],
   "source": [
    "# 设置循环核时间步timestep为60。\n",
    "features = []\n",
    "labels = []\n",
    "for i in range(60, len(all_data_scaled)):\n",
    "    features.append(all_data_scaled[i-60:i, ])\n",
    "    labels.append(all_data_scaled[i, 1])\n",
    "features, labels = np.array(features), np.array(labels)\n",
    "features = np.reshape(features, (features.shape[0], features.shape[1], -1))\n",
    "x_train,x_val,x_test,y_train,y_val,y_test= features[:6550],features[6550 :6914 ],features[6914:],labels[:6550],labels[6550 :6914],labels[6914:]\n",
    "print('shape of x_train:',x_train.shape)\n",
    "print('shape of x_val:',x_val.shape)\n",
    "print('shape of x_test:',x_test.shape)\n",
    "print('shape of y_train:',y_train.shape)\n",
    "print('shape of y_val:',y_val.shape)\n",
    "print('shape of y_test:',y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Part 2 - Building the LSTM\n",
    "# Importing the Keras libraries and packages\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "import keras \n",
    "from sklearn.model_selection import train_test_split\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense\n",
    "from keras.layers import LSTM\n",
    "from keras.layers import Dropout\n",
    "# Initialising the RNN\n",
    "regressor = Sequential()\n",
    "# Adding the first LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 50, return_sequences = True, input_shape = (x_train.shape[1], 6))) #输入特征的维数\n",
    "regressor.add(Dropout(0.2))\n",
    "# Adding a second LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 50, return_sequences = True))\n",
    "regressor.add(Dropout(0.2))\n",
    "# Adding a third LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 50, return_sequences = True))\n",
    "regressor.add(Dropout(0.2))\n",
    "# Adding a fourth LSTM layer and some Dropout regularisation\n",
    "regressor.add(LSTM(units = 50))\n",
    "regressor.add(Dropout(0.2))\n",
    "# Adding the output layer\n",
    "regressor.add(Dense(units = 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "#编译训练模型重点#\n",
    "#编译训练模型重点#\n",
    "#编译训练模型重点#\n",
    "# Compiling the RNN\n",
    "regressor.compile(optimizer = 'adam', loss = 'mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "lstm (LSTM)                  (None, 60, 50)            11400     \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "lstm_1 (LSTM)                (None, 60, 50)            20200     \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "lstm_2 (LSTM)                (None, 60, 50)            20200     \n",
      "_________________________________________________________________\n",
      "dropout_2 (Dropout)          (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "lstm_3 (LSTM)                (None, 50)                20200     \n",
      "_________________________________________________________________\n",
      "dropout_3 (Dropout)          (None, 50)                0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 1)                 51        \n",
      "=================================================================\n",
      "Total params: 72,051\n",
      "Trainable params: 72,051\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "print(regressor.summary()) # Summarize Model 模型可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\n",
      "\n",
      "               Input   #####     60    6\n",
      "                LSTM   LLLLL -------------------     11400    15.8%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                LSTM   LLLLL -------------------     20200    28.0%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                LSTM   LLLLL -------------------     20200    28.0%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                LSTM   LLLLL -------------------     20200    28.0%\n",
      "                tanh   #####          50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####          50\n",
      "               Dense   XXXXX -------------------        51     0.1%\n",
      "                       #####           1\n"
     ]
    }
   ],
   "source": [
    "from keras_sequential_ascii import keras2ascii\n",
    "keras2ascii(regressor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('Failed to import pydot. You must `pip install pydot` and install graphviz (https://graphviz.gitlab.io/download/), ', 'for `pydotprint` to work.')\n"
     ]
    }
   ],
   "source": [
    "from keras.utils import plot_model \n",
    "plot_model(regressor, to_file='model.png', show_shapes=True, show_layer_names=True) # plot my model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# import keras #回调函数\n",
    "# class LossHistory(keras.callbacks.Callback):\n",
    "#     def on_train_begin(self, logs={}):\n",
    "#         self.losses = {'batch':[], 'epoch':[]}\n",
    "#         self.accuracy = {'batch':[], 'epoch':[]}\n",
    "#         self.val_loss = {'batch':[], 'epoch':[]}\n",
    "#         self.val_acc = {'batch':[], 'epoch':[]}\n",
    "\n",
    "#     def on_batch_end(self, batch, logs={}):\n",
    "#         self.losses['batch'].append(logs.get('loss'))\n",
    "#         self.accuracy['batch'].append(logs.get('acc'))\n",
    "#         self.val_loss['batch'].append(logs.get('val_loss'))\n",
    "#         self.val_acc['batch'].append(logs.get('val_acc'))\n",
    "\n",
    "#     def on_epoch_end(self, batch, logs={}):\n",
    "#         self.losses['epoch'].append(logs.get('loss'))\n",
    "#         self.accuracy['epoch'].append(logs.get('acc'))\n",
    "#         self.val_loss['epoch'].append(logs.get('val_loss'))\n",
    "#         self.val_acc['epoch'].append(logs.get('val_acc'))\n",
    "\n",
    "#     def loss_plot(self, loss_type):\n",
    "#         iters = range(len(self.losses[loss_type]))\n",
    "#         plt.figure()\n",
    "#         # loss\n",
    "#         plt.plot(iters, self.losses[loss_type], 'g', label='train loss')\n",
    "#         if loss_type == 'epoch':\n",
    "#             # val_loss\n",
    "#             plt.plot(iters, self.val_loss[loss_type], 'k', label='val loss')\n",
    "#         plt.grid(True)\n",
    "#         plt.xlabel(loss_type)\n",
    "#         plt.ylabel('acc-loss')\n",
    "#         plt.legend(loc=\"upper right\")\n",
    "#         plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/200\n",
      "205/205 [==============================] - 4s 19ms/step - loss: 0.0063 - val_loss: 0.0026\n",
      "Epoch 2/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0025 - val_loss: 8.0783e-04\n",
      "Epoch 3/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 0.0024 - val_loss: 0.0011\n",
      "Epoch 4/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0021 - val_loss: 0.0015\n",
      "Epoch 5/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0019 - val_loss: 0.0029\n",
      "Epoch 6/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 0.0020 - val_loss: 0.0015\n",
      "Epoch 7/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 0.0016 - val_loss: 0.0018\n",
      "Epoch 8/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 0.0015 - val_loss: 3.3085e-04\n",
      "Epoch 9/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 0.0015 - val_loss: 4.3764e-04\n",
      "Epoch 10/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0014 - val_loss: 3.2918e-04\n",
      "Epoch 11/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0013 - val_loss: 6.1600e-04\n",
      "Epoch 12/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0012 - val_loss: 3.0597e-04\n",
      "Epoch 13/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0012 - val_loss: 6.8237e-04\n",
      "Epoch 14/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0011 - val_loss: 2.5201e-04\n",
      "Epoch 15/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0011 - val_loss: 3.5553e-04\n",
      "Epoch 16/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0011 - val_loss: 0.0012\n",
      "Epoch 17/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0011 - val_loss: 2.1731e-04\n",
      "Epoch 18/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 0.0010 - val_loss: 0.0014\n",
      "Epoch 19/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 9.9663e-04 - val_loss: 2.5510e-04\n",
      "Epoch 20/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 9.8483e-04 - val_loss: 2.0782e-04\n",
      "Epoch 21/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 9.6023e-04 - val_loss: 9.3017e-04\n",
      "Epoch 22/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 8.9735e-04 - val_loss: 6.4873e-04\n",
      "Epoch 23/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 8.8078e-04 - val_loss: 2.0974e-04\n",
      "Epoch 24/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 9.5290e-04 - val_loss: 1.9439e-04\n",
      "Epoch 25/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 9.3717e-04 - val_loss: 0.0023\n",
      "Epoch 26/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 8.7236e-04 - val_loss: 7.9075e-04\n",
      "Epoch 27/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 8.8307e-04 - val_loss: 4.0684e-04\n",
      "Epoch 28/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 7.4947e-04 - val_loss: 1.7075e-04\n",
      "Epoch 29/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 8.7342e-04 - val_loss: 1.5201e-04\n",
      "Epoch 30/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 8.5296e-04 - val_loss: 4.7639e-04\n",
      "Epoch 31/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 7.9400e-04 - val_loss: 1.5156e-04\n",
      "Epoch 32/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 7.9265e-04 - val_loss: 4.6587e-04\n",
      "Epoch 33/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 8.0656e-04 - val_loss: 2.6277e-04\n",
      "Epoch 34/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 8.3981e-04 - val_loss: 8.3850e-04\n",
      "Epoch 35/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 8.4074e-04 - val_loss: 3.9931e-04\n",
      "Epoch 36/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 7.2407e-04 - val_loss: 2.0784e-04\n",
      "Epoch 37/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 7.8279e-04 - val_loss: 2.8677e-04\n",
      "Epoch 38/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 7.6595e-04 - val_loss: 1.0561e-04\n",
      "Epoch 39/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 7.5898e-04 - val_loss: 2.2408e-04\n",
      "Epoch 40/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 7.3897e-04 - val_loss: 1.5143e-04\n",
      "Epoch 41/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.9583e-04 - val_loss: 2.8592e-04\n",
      "Epoch 42/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 7.0097e-04 - val_loss: 1.9688e-04\n",
      "Epoch 43/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.7537e-04 - val_loss: 1.4188e-04\n",
      "Epoch 44/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 7.0341e-04 - val_loss: 1.1220e-04\n",
      "Epoch 45/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 7.1458e-04 - val_loss: 9.3222e-05\n",
      "Epoch 46/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.8995e-04 - val_loss: 1.6570e-04\n",
      "Epoch 47/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 7.0724e-04 - val_loss: 3.7122e-04\n",
      "Epoch 48/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 7.0394e-04 - val_loss: 3.0059e-04\n",
      "Epoch 49/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 7.1715e-04 - val_loss: 2.6722e-04\n",
      "Epoch 50/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 7.1512e-04 - val_loss: 1.9154e-04\n",
      "Epoch 51/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.9038e-04 - val_loss: 9.3464e-04\n",
      "Epoch 52/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.7259e-04 - val_loss: 1.7388e-04\n",
      "Epoch 53/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.8702e-04 - val_loss: 4.2075e-04\n",
      "Epoch 54/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 7.6232e-04 - val_loss: 1.5075e-04\n",
      "Epoch 55/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.7085e-04 - val_loss: 1.0565e-04\n",
      "Epoch 56/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.6160e-04 - val_loss: 1.1265e-04\n",
      "Epoch 57/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.8680e-04 - val_loss: 8.7040e-05\n",
      "Epoch 58/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.8018e-04 - val_loss: 5.0705e-04\n",
      "Epoch 59/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.5942e-04 - val_loss: 1.9971e-04\n",
      "Epoch 60/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.3004e-04 - val_loss: 1.5487e-04\n",
      "Epoch 61/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.5492e-04 - val_loss: 1.1595e-04\n",
      "Epoch 62/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.3837e-04 - val_loss: 2.4739e-04\n",
      "Epoch 63/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.2622e-04 - val_loss: 9.6764e-05\n",
      "Epoch 64/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.6255e-04 - val_loss: 1.7636e-04\n",
      "Epoch 65/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.6940e-04 - val_loss: 2.4699e-04\n",
      "Epoch 66/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.5070e-04 - val_loss: 2.6162e-04\n",
      "Epoch 67/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.4496e-04 - val_loss: 9.4922e-05\n",
      "Epoch 68/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.8139e-04 - val_loss: 2.5747e-04\n",
      "Epoch 69/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.8203e-04 - val_loss: 1.8698e-04\n",
      "Epoch 70/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.2666e-04 - val_loss: 8.2482e-05\n",
      "Epoch 71/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.7906e-04 - val_loss: 7.7575e-05\n",
      "Epoch 72/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.5817e-04 - val_loss: 8.9891e-05\n",
      "Epoch 73/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.3058e-04 - val_loss: 7.8489e-05\n",
      "Epoch 74/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.4895e-04 - val_loss: 8.7273e-05\n",
      "Epoch 75/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.3709e-04 - val_loss: 1.6083e-04\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 76/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.3421e-04 - val_loss: 1.3317e-04\n",
      "Epoch 77/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.1267e-04 - val_loss: 7.0541e-05\n",
      "Epoch 78/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.4529e-04 - val_loss: 2.7446e-04\n",
      "Epoch 79/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.2536e-04 - val_loss: 6.6267e-05\n",
      "Epoch 80/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.5085e-04 - val_loss: 6.6252e-05\n",
      "Epoch 81/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.7153e-04 - val_loss: 6.5009e-05\n",
      "Epoch 82/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.8046e-04 - val_loss: 4.6011e-04\n",
      "Epoch 83/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.1199e-04 - val_loss: 1.4708e-04\n",
      "Epoch 84/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.2436e-04 - val_loss: 1.7936e-04\n",
      "Epoch 85/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.7835e-04 - val_loss: 1.4285e-04\n",
      "Epoch 86/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.3658e-04 - val_loss: 2.0873e-04\n",
      "Epoch 87/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.2752e-04 - val_loss: 7.4991e-05\n",
      "Epoch 88/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.9594e-04 - val_loss: 8.7754e-05\n",
      "Epoch 89/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.9430e-04 - val_loss: 2.0347e-04\n",
      "Epoch 90/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.0314e-04 - val_loss: 7.0521e-05\n",
      "Epoch 91/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.0947e-04 - val_loss: 2.6423e-04\n",
      "Epoch 92/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.2776e-04 - val_loss: 3.8670e-04\n",
      "Epoch 93/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.8056e-04 - val_loss: 7.5209e-05\n",
      "Epoch 94/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.0093e-04 - val_loss: 7.0891e-05\n",
      "Epoch 95/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.8832e-04 - val_loss: 6.4463e-05\n",
      "Epoch 96/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.9873e-04 - val_loss: 2.0602e-04\n",
      "Epoch 97/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.1111e-04 - val_loss: 2.8768e-04\n",
      "Epoch 98/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.9646e-04 - val_loss: 6.5072e-05\n",
      "Epoch 99/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.9991e-04 - val_loss: 6.6466e-05\n",
      "Epoch 100/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.9575e-04 - val_loss: 9.9957e-05\n",
      "Epoch 101/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.8428e-04 - val_loss: 1.3849e-04\n",
      "Epoch 102/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.9547e-04 - val_loss: 6.5959e-05\n",
      "Epoch 103/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.9080e-04 - val_loss: 7.3885e-05\n",
      "Epoch 104/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.7696e-04 - val_loss: 5.2697e-04\n",
      "Epoch 105/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.7645e-04 - val_loss: 1.1575e-04\n",
      "Epoch 106/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 6.1911e-04 - val_loss: 1.8988e-04\n",
      "Epoch 107/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.7363e-04 - val_loss: 7.2154e-05\n",
      "Epoch 108/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.5931e-04 - val_loss: 8.5524e-05\n",
      "Epoch 109/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.7522e-04 - val_loss: 1.5636e-04\n",
      "Epoch 110/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 6.0201e-04 - val_loss: 8.6918e-05\n",
      "Epoch 111/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.9138e-04 - val_loss: 4.8623e-04\n",
      "Epoch 112/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.9801e-04 - val_loss: 8.1389e-05\n",
      "Epoch 113/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 5.9573e-04 - val_loss: 7.9345e-05\n",
      "Epoch 114/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.6722e-04 - val_loss: 1.8144e-04\n",
      "Epoch 115/200\n",
      "205/205 [==============================] - 3s 13ms/step - loss: 5.6564e-04 - val_loss: 1.4702e-04\n",
      "Epoch 00115: early stopping\n"
     ]
    }
   ],
   "source": [
    "# fit to the training set\n",
    "history=regressor.fit(x_train, y_train, epochs=200, batch_size=32,validation_data=(x_val, y_val),callbacks=[mc, earlystop])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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bt0YN25cyfHat29fkj8nJ4fzzz+fww8/nIsvvphgEcVp06Zx+OGHc/zxx3PjjTfG9Ux+/PFHzjnnHI455hgGDBjA4sWLAXj33XdLPK7evXuzfft21q5dy4knnkivXr046qijeP/991N+ziqDeyyxyMx0YXGcVHDTTTSYPx8yMlJ3zF694OGHky721Vdf8c4775CRkcG2bdt47733qFu3Lu+88w533nknr7zySrkyX375JbNnz2b79u0cdthhXHvtteWe+Vi4cCFLlizhwAMPZNCgQXz44YdkZ2fzy1/+kvfee4+uXbsycuTIuPW755576N27N6+99hqzZs1i1KhRLFq0iAceeIBHHnmEQYMGkZ+fT/369Rk/fjynn346d911F0VFRRQUFCR9PtKBC0sssrJAFYqKUvuHcBxnv3HBBReQEfo/b926lcsuu4yvv/4aEWFvBaHvM888k3r16lGvXj3atm3L+vXr6dixY6k8/fv3L0nr1asXq1atonHjxnTr1q3k+ZCRI0cyfvz4mPX74IMPSsRt8ODBbNq0ia1btzJo0CBuvvlmLr74Ys4991w6duxIv379uPLKK9m7dy/nnHMOvXr1qsqpSRkuLLHIyrL3PXugQYP9WxfHqck8/DA7q8nDhJHT3P/2t7/l5JNPZvLkyaxatarCmYrr1atX8jkjI4PCwsKE8gThsGSIVkZEGDNmDGeeeSbTpk1jwIABvPPOO5x44om89957vPnmm1x66aXceuutjBo1KunvTDVp7WMRkSEiskxElovImCj7RUTGhfYvFpE+iZQVkRtC+5aIyP+kzYDA1fVwmOPUSrZu3UqHDh0AeOaZZ1J+/MMPP5yVK1eyatUqAF544YW4ZU488USee+45wPpuWrduTdOmTVmxYgVHH300t99+O9nZ2Xz55Zd8++23tG3blquvvpqrrrqKBQsWpNyGypA2j0VEMoBHgJ8BecA8EZmiql9EZDsD6B56HQs8Bhwbq6yInAwMB45R1d0i0jZdNpTyWBzHqXXcdtttXHbZZTz44IMMHjw45cdv0KABjz76KEOGDKF169b0798/bpmxY8dyxRVXcMwxx9CwYUMmTJgAwMMPP8zs2bPJyMigR48enHHGGUyaNIn777+fzMxMGjduzMSJE1NuQ6VQ1bS8gIHA9IjtO4A7yuR5AhgZsb0MaB+rLPAicGoy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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画损失曲线图\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "epochs = range(1, len(loss) + 1)\n",
    "plt.title('LSTM Loss curve')\n",
    "plt.plot(epochs, loss, 'red', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'blue', label='Validation loss')\n",
    "plt.grid(True)\n",
    "plt.xlabel('epoch')\n",
    "plt.ylabel('loss')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "sc_one = MinMaxScaler(feature_range = (0, 1))\n",
    "sc_one.fit_transform(all_data.iloc[:, 1:2])\n",
    "predicted_stock_train = regressor.predict(x_train)\n",
    "predicted_stock_train = sc_one.inverse_transform(predicted_stock_train)\n",
    "predicted_stock_test = regressor.predict(x_test)\n",
    "predicted_stock_test = sc_one.inverse_transform(predicted_stock_test)\n",
    "real_price_train=sc_one.inverse_transform(np.reshape(y_train,(-1,1)))\n",
    "real_price_test=sc_one.inverse_transform(np.reshape(y_test,(-1,1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_train, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_train, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('LSTM train Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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fcFb+vH883FAc9q1O0FCwqpSy72lH6fCnf0ICQkhMzPTLfsuSWFhYbnHstv79OnDxo0byczMZPfu3dx7772kpqbSuHFjXnnlFTp37sycOXN47rnnyM/PJzw8nLfffpvmzZuTk5NDXl5eqWMcOHCAoUOHOtrbt29PZmYm999/P9u3b6dXr15cccUV3HDDDdx99938+eef+Pn58e9//5thw4ZRWFjIY489xoIFC1BKMXnyZG688Ua01mRlZVFUVMSVV17J+PHjmTJlSrFj2+sEBgbSv39/pk+fzsaNG5kwYQJDhw5l1apVfPzxx1x44YX8+uuvRERE8PHHH/PKK6+glKJ79+7MmDGDlJQU7rrrLg4cOADAs88+y+DBg916TsojJyenav9HrbXbXkA7YGMZ7W8A97p8fw242uX7O8CEU+2/X79+uiYsWrSoRtvXF7ylH927aw1ad+xY9nJv6cepcGc/Nm/e7Pxy551aDx9eu68773Ts/vjx42XK0LRpU6211gUFBfqyyy7Tc+bM0Vprfc455+jt27drrbVeuXKlHjlypNZa67S0NF1UVKS11nrGjBn6nnvu0Vpr/e677+rbbrut1P7nzp2rQ0JC9IgRI/TTTz+tDx48qLWW33Xs2LGO9aZNm6anTJmitdZ6y5YtunXr1jo7O1u//vrr+tJLL9X5+flaa61TU1P18ePHddu2bfWePXv0qFGj9HvvvVdm39q2bauPHj2qtdb6tttu0w888IDes2ePVkrpFStWlFpv48aNunPnzo5tUlNTtdZaX3HFFXrJkiVaa6337dunu3btWubxqkp556Qiiv1nLIDVupz7ap1bCkopP+BSoJ9LcyLQ2uV7K+BQXcplcD/H0jSgOHGi9LI1a2Dr1iAaQM2yBk92dja9e/dm79699OvXj/POO4+srCyWL1/OxIkTHevl5uYCklsxadIkDh8+TF5e3ilj5seMGcPu3buZO3cuc+bMcVgjJVm6dCl33HEHAF27dqVt27Zs376dX375hVtuuQU/P7m9hYeHO56ux48fzwMPPMBVV11V7vFHjhyJr68vvXr14umnnyY9PZ22bduW+aS/cOFCLrvsMiIjIx3HAvjll1/YvHmzY73jx497Ta6EJ4aPzgW2aq0TXdpmAx8rpV4AWgKdgN89IJvBXeTlkX44H2haplIQ53M/Ro+GDh3qWDZv5X//88hhbZ9CRkYGF110Ea+99hpTpkwhNDSUtWvXllr/jjvu4J577mHcuHEkJCTwxBNPnPIY4eHhXHnllVx55ZVcdNFFLF68mIiIiGLr6HLml9dalxuKedZZZzFnzhyuvPLKctdZtGiR4yYPkJ6eXm656vKOVVRUxIoVK2jcuHGZ29Vn3BmS+gmwAuiilEpUSl1vLbocp4MZAK31JuBzYDMwF7hNa13oLtkMdU/eC69yErmwTp4svizNJRzhvvvqUChDjQgJCeHll19m2rRpNG7cmPbt2/PFF18AcrNct24dABkZGcTGiovwvffeO+V+Fy5cyEnrT5KZmcmuXbto06YNQUFBxcbThw0bxkcffQTA9u3b2b9/P126dGH06NFMnz6dgoICANJc/mBPPvkkERER3HrrrbXwC8CoUaP4/PPPSU1NLXas0aNH8+qrrzrWK0tZ1lfcGX10hdY6Rmvtr7VupbV+x2qforWeXsb6U7XWZ2itu2it57hLLoNnOPbRTwDE+idTUAB5ec5lK1bIe0hIHlu3ekA4Q7Xp06cP8fHxfPrpp3z00Ue88847xMfH0717d7777jsAnnjiCSZOnMjQoUOLPYGXx5o1a+jfvz+9evViyJAh3HDDDQwYMIBevXrh5+dHfHw8L774IrfeeiuFhYX07NmTSZMmMWvWLAIDA7nhhhto06YNvXr1Ij4+vlTE0v/+9z9ycnJ44IEHatz/7t278+ijjzJ8+HDi4+O55557AHj55ZdZvXo1vXr1Ii4ujunTS93y6i/lORu84WUczYI39GNLy3M0aD2o8VoNWqelOZc9/LDWfn5ajx17UAcHe07G2qLOHM1upjpOzfpKQ+lLXTiaTZkLQ52Qnim5iLFK4gdsv8Jvv8GsWdCvH8TGZnP8OGRleUhIg8FglIKhDtCaYycCAIi14gtOnIAjR2DsWGjUCKZPh8hIGVM6eNBjkhoMpz1GKRjcz4kTHCsKBqBVwT67iYcfhsxM+H7Sh/RO+B+RkRLCaJSCweA5zHwKBveTkcExwgBolb8bEKWwciVccAF0f+avAMROmw305pDJUDEYPIaxFAzuJyODdEIBiEXMgBMnIDkZWkY7I4/7zJdwRWMpGAyewygFg/uxLIXGPjmEcQyA9HRITYUWgcccq7XYvZ7gYKMUDAZPYpSCwf0cP84xwghrlE1TJOxoz4xfAGhRaGmArl3xT08nNtYohfqOa+nsiRMnOhLNqsOUKVP48ssvAbjhhhuKlYYoSUJCAsuXL6/yMdq1a+dILnNl5syZ9OzZk169etGjRw9HXsWsWbM4VM0xzPLKgZdcJyoqit69exMXF8eMGTPKXG/27NmOCrF1iVEKBvdjWQphTfMcSmH3wj0ARGdsl3WGDiUgPZ3u3TULF8LRo54S1nAqXEtnBwQElErMKiysXjGCt99+m7i4uHKXV1cplEViYiJTp05l6dKlrF+/npUrV9KrVy+gZkqhskyaNIm1a9eSkJDAI488QnJycrHlBQUFjBs3joceesitcpSFUQoG92MrheAih1LYxRkAtJj/AURGQteu+OTn8+R9mWRlwT//6UmBDZVl6NCh7Ny5k4SEBEaOHMmVV15Jz549KSws5P7773dkIr/55puAJMvefvvtxMXFMXbsWI4cOeLY14gRI1i9ejUAc+fOpW/fvsTHxzNq1Cj27t3L9OnTefHFF+nduzdLlizh6NGjTJgwgQEDBjBgwACWLVsGQGpqKqNHj6ZPnz7cfPPNZdZIOnLkCEFBQTRr1gyAZs2a0b59e7788ktWr17NVVddRe/evcnOzmbBggX06dOHnj17ct111zkK/a1atYozzzyT+Ph4Bg4cWKqk9Y8//siQIUMqnNinefPmnHHGGezbt48pU6Zwzz33MHLkSB588MFiVkdycjKXXHKJ43i2cvzwww8ZOHAgvXv35uabb662QnbFRB8Z3EpiIjQ6lMd2OnN2iyKa7JKhht1I1bsWR9bB8O7QvDkA3UIPM2lSMN98A2+8AWY64vK56y6o7ZI6vXtXvs5eQUEBc+bM4fzzZYLF33//nY0bN9K+fXveeustQkJCWLVqFbm5uZx11lmMHj2aP//8k23btrFhwwaSk5OJi4vjuuuuK7bfo0ePcuONN7J48WLat29PWloa4eHh3HLLLTRr1oz7rAJZV155JXfffTdnn302+/fvZ8yYMWzZsoV//etfnH322Tz22GP8+OOPvPXWW6Vkj4+PJzo6mvbt2zNq1CguvfRSLr74Yi677DJeffVVpk2bRv/+/cnJyWHKlCksWLCAzp07c8011/DGG29w6623MmnSJD777DMGDBjA8ePHixW/++abb3jhhRf46aefCAsLK/c33L17N7t376Zjx44Ajiqvvr6+zJo1y7He3//+d4YPH877779PkyZNyMrKYsuWLXz22WcsW7YMf39/br31Vj766COuueaayp3AcjBKwcMcOAAtWoC/v6clqT20hiefhOXLYdEiCA+4hmSCGH/eDnyXFdHIv4B9+e0AiL56NDx6r/wQAMnJjBzZhY8+gq1boVs3z/XDUDZ26WwQS+H6669n+fLlDBw40FEWe968eaxfv97hL8jIyGDHjh0sXryYK664Al9fX1q2bMk555xTav8rV65k2LBhjn3Z5ahLUl556sWLF/P1118DMHbs2DJvyr6+vsydO5dVq1axYMEC7r77btasWVOqguu2bdto3749nTt3BmDy5Mm89tprjBo1ipiYGAYMGABAcHCwY5tFixaxevVq5s2bV6zdlc8++4ylS5cSGBjIm2++6ejjxIkT8fUtPRPxwoULef/998nLy8PX15eQkBA++OAD1qxZ45AhOzub5tbDVU0wSsGDZGZCly7w0ktw442elqb2ePxxeOop6NpV5mReuDCIQHK4+Px8eAKa+OWTk+9HSOM8Gn1gOdnsCnlHjjB8uHxcvNgohYrwUOVsh0+hJK7lpbXWvPLKK4wZM6bYOj/99FO5Jatdtz3VOlBxeerKbK+UYuDAgQwcOJDzzjuPa6+9tpRSKGvo6VQydujQgd27d7N9+3b6lzMh+aRJk4pVUbUpr0R3eTJMnjyZ//znP5XepjIYn4IHSUyE7GzYs8fTktQeiYnwzDNw9dWweTPMnw9Dm2/j8qbfE9RcLt6mvtkAtIhwKZVqP+EkJ3PGGRATA7/+WtfSG2qLMWPG8MYbb5Cfnw/IsMiJEycYNmwYn376KYWFhRw+fJhFixaV2nbIkCH8+uuv7LEuDLscdcnS2eWVp3YtqT1nzhyOHXOGPdscOnSIP/74o9i2bdu2LXWcrl27snfvXnbu3AnABx98wPDhw+natSuHDh1i1SqZVjYzM9NRqrtt27Z8/fXXXHPNNWzatKmqP12ZjBo1ijfeeAMQR/7x48cZNWoUX375pcMvk5aWxr59+2p8LKMUPMjhw/JeRrSc1/L881BUBE9d9BvqsX/is3I5vw5+kFkdnoImTWQl6+JpEVXk3DAyEq0UHDmCUlIgr4LoREM954YbbiAuLo6+ffvSo0cPbr75ZgoKCrjkkkvo1KkTPXv25G9/+xvDbbPQhaioKN566y0uvfRS4uPjmTRpEgAXX3wx33zzjcPRXF556scff5zFixfTt29f5s2bR5s2bUodIz8/n/vuu4+uXbvSu3dvPvvsM1566SVAwmRvueUWevfujdaad999l4kTJ9KzZ098fHy45ZZbCAgI4LPPPuOOO+4gPj6e8847j5ycHMf+u3TpwkcffcTEiRPZtWtXjX/Pl156iUWLFjF48GD69evHpk2biIuL4+mnn2b06NH06tWL8847j8P2TaUmlFc+1Rte3l46+8MPZc7iCRNqth9P98OmqEjrFi20vmxkitb+/tK5fv20HjFC67PP1jozU2vQvuRr0Pq76QeLbZ8bEqL1zTdrreUtMtIDnagFTOns+kdD6Yspnd3AsUOhG4qlsHs3JCXBOX9Mg1at4M474Y8/YMsWGR6yLIXvGl/BD4xl3KQmxbYvCA6GN9+EN98kNhZSUsCK/jMYDHWEUQoepKENH1lh4pyd8wt88w1MnCihSMnJcNll4OMDjRoxNvtLxvr+DCEhxbbP6NFDPjz5JC1bykdTHM9gqFuMUvAgtlJwnaPYm1m2MJcQ0ul+92iIj4eBA6FZMwgPh0sukZXs6IqIiFJJCNseeECcEocOEdtYfhSjFEqjy4mIMRhKUp3/iglJ9SANzVL4/deTDOJ3fC66UBr8/SVhITRUZtIBUQqpqZLFXBaDBgEQe3QtcI6pg1SCRo0akZqaSkRERKXCLg2nL1prUlNTaWRfe5XEKAUPYj8F5+TAyZPO4Bxv5cBhP4YEJMKgyc7Gu+8uvpJ9I4uIKHsnffuCnx+xe5dhlEJpWrVqRWJiIkfroDhUTk5OlW8o9ZWG0peq9qNRo0a0atWqSscwSsGDHD4sD84nTsjDszcrhdysfFJzg2jZMwj8Kvhb2ZMzT5lS9vLGjaFXL8I2LqFRI1MxtST+/v6OTF93k5CQQJ8+ferkWO6mofSlLvphfAoeIv1wNllZ0KNNBuD9Q0iHv1gKQMvhnSpe8fPPYcECKFHvphht26IOHyI21v0+hQMHpByHzddfQy0niLJ+Pfz3v7W7T4PBXRil4CGWvrsDgPNTJPPS25XCoU8XAxA7pkfFK44cCWXUuylGVBQcOULLlu5XCpMmwVlnSSTssmUwYQI88kjtHmP6dHjgAQnEMhjqO0YpeIgFP2TTiGwu6iLKweuVwlpJtW/ZthYq+zVvDqmphIZoMjJqvrvyOH4cVqyQz/ffX9xCOH689o6zdau8WxUfDIZ6jVEKHmLBhijOYhmxRVId1NuVwsF0CTW18wtqRFQUFBURFJhLVlYt7K8cfvpJ3m+9VYoTzpnjDJKqTV+GrRRMIp7BGzBKwQNkpRewIasDw/mViCNbAC+faezkSQ7lRRDgW0A5VY6rRlQUAM18sikxb0mtMn++BEFZ5fkpKpLhJKg9pZAx7zdH6HFeXsXrGgz1AbcpBaXUTKXUEaXUxhLtdyiltimlNimlnnNpf1gptdNaNqb0HhsOJ//cBkBEcD4BibsJC9OUmI3PuzhyhEO0pGVYdu1MimNVTG2mstxqKRw4AB07Qvv20Lq1tNlKITGxdo6xbcwdjs9GKRi8AXdaCrOA810blFIjgfFAL611d2Ca1R4HXA50t7Z5XSlVeqaJBkLemg0ABPTtCTk5tIgq9G6lkJwsSiGqlgbNLUshSGdy4oQ8wbuDw/vyiAmUzOlzzoGW0QWMaLQSqD1LYQvOCSGMUjB4A25TClrrxUDJAg5/A57RWuda69gTtI4HPtVa52qt9wA7gYHuks3T5P0pNdYDukv4ZnRwNklJnpSohhw5wmFiiImppf3Zw0cF6YAztaG2Obwnm5gVX0NeHi++CMuSO9L4nCFERNSeUthKV8dnoxQM3kBdJ691BoYqpaYCOcB9WutVQCyw0mW9RKutFEqpm4CbAKKjo0lISKi2MFlZWTXavro0Wy6TkyeeTAegUe4BdhxuR0LC79Xan6f6YdNi8WLSGEChTxoJCeurvR+7H6qggOFAbtIO4Ex+/nk5kZFVu6Nu2xZEero/gwaVLiw1f3402zc1JjW/HTHsY+2rr1IQFER/ZIKS0JBM1q3LJSFhY6ltK9uPjz9eydatQcWUwtKlqzh40E0azg14+n9VmzSUvtRFP+paKfgBYcBgYADwuVKqA1DWSHSZUd1a67eAtwD69++vR4wYUW1hEhISqMn21SIvj/WJYiB1PbM/vAtdIgtYtrdJtWXxSD9c0MuWk0oE3XpHMGJEx2rvp1g/wsJo11T+Ar16nYk1RW6lGTlS3vPzSydYP/MM/PyzfI7hML0TTxR7jO/Szp+k9KAanY9ffhnMSy9BS0IJIJc8AomPH0DfvtXapUfw9P+qNmkofamLftR19FEi8LU1z8PvQBEQabW3dlmvFdAw62NmZJAvE4/hHymlo6N9jpKZKfWPvJGsgxkU4E94dC3kKNhERRGULY6WmkQg2XkIruze7fwcEx8NP/4IvzuttHYRx9m+XSLCqps8t3+/vB8iljhkCjkzfGTwBupaKXwLnAOglOoMBAApwGzgcqVUoFKqPdAJqN5YSn0nL488AgAIaOwLoaFEIze/+uBsPnnSMVtmpUlLFG1WK+GoNlFRNMuSH6Q6EUi+VpiCnYtgU1gIe/c6v8eM6ALbt8Off8LZZwNw9cDtZGVJENQZZ1RDdpxKAaAXMqRmlILBG3BnSOonwAqgi1IqUSl1PTAT6GCFqX4KTLashk3A58BmYC5wm9a60F2yeZT8fKdSCAAiI4nOl/jH+qAUBgyAf/yjatukJknUUXmFT6tFcDBBuSlA1S2Fk5v3Umj9e776qriSO3SoeGZxzLnd5UNBAVxwAQCDg7cw0ApzyMmpXnmKAwecn41SMHgT7ow+ukJrHaO19tdat9Jav6O1ztNaX6217qG17qu1Xuiy/lSt9Rla6y5a6znuksvjuFoKAUBEBC1yxcHpaaWQnAybN8tDc1VIOyp34Fq1FJo2pVmupHlX1VI4ePc0AMaPhx074P33nct2Jzgf4X1UEc1H9XSmMZ8vEdQqOYkPPoAzz6Rax8/L8+HIEed3oxQM3oTJaK5ryrIUTsggd12GpZ5zDkybVrxtzRp537evavtKy5CxmlpXCjmVsxR++AE++MD5/cB+SWz4+22F9O8PL74o7U89BSOuaQNADzbSomkmvo0DZGKfwEDo2VPMncOH6dwZrr9etqvqzHiZ60SZ3TlyPc/yAFFIuropc2HwBoxSqGvy8shHHLL+/kBEBM0zpCheXVkKJ07AokXwyivFh0ZspbB/f9WGTFKzAoFaHj5q2pSgbHncPtWT+iOPwEMPOb8nHpUn/9Y+Bxk1CrZtk9Ghxx5zrvMhV/He1b/Il/vvlxni/P2hRQvHlHi2kquqUiicLabWuNDFPMB/CUBMBGMpGLwBoxTqmjIshYC0JMLD604p7Nwp7/v3w0qX7BBbKWRnV6EWU24uafnNAAgLqz0ZadqUZidFKVRkKaSkwIYN4itISwO0JjFd5Ik9sZ2OHcWHsH8/uE5AFc96zh1m3aXHjpXa1gAxMQ6TzVZyVSlWuGkTPPbHtQC0XjALwCgFg1dhlEJdU4ZPgRMniG5eVGfDRzt2OD9/+qm8FxbCb785b+yVHkI6dow0wmkakE9gYC0K2bQpfnknadRIV2gpLF7s/LxpE3D8OImFLYgghSYHd9Cpk3PZwYOav6uX2UUHaYyOLr3DmBhH4aPqWArTpsG2kzIzWqvjm6BnT6MUDF6FUQp1TRmWAkB0WF6dWQq2UjjvPJkIrbAQEhLkAflvf5NlVVEKqUQQEVzLd7ymUoq7WVPNL78Uv/m7kpDgDD/duBFISmI/bWhFIuza5VAKv3yYhNaKAfp3OrBHGstSCn36iFI4eLBaSuHYMXl/hgdpTA6ccw6BiDPBKAWDN2CUQl1TlqWA1D9yVQrHj8tNZMuW2r+Z7NghQ+c33iiK4NdfJUInJOAkd7SdDcCXX1ZyCMmyFMKDazmC2FYKTYr480+47LLSv0NhIXzzjQQNBQdbSiE5mT20pz17YOdOYmJk7uuff5K41A64ZK6VpRSGD5f3J58k/PPpQNWGjw4e1IzmZx7EKgA8apTDUjCOZoM3YJRCXVOOpdCiaaZDKRw5IqWcGzeGuLjiTtTaYMecnXQKO8rYsXLv/eQT+OYbzYS8T2hx83gAPvuskse1lUJ4Lc812Uz8AnsPSI2Ko0fhu++Kr7JokTzUX3MN9OghSclFh5LYQ3s6hKTB+vUoNB07wrYscSi0Z484lH19yw6Xio8HHx946y0C7/obTZtWzVI4eKBIrJRLL4Xbb4eOHc3wkcGrMEqhrikZfWQPHwWkO0pd/O9/4ly9806p4fPGG7UXrlqQcYItSaF0OraKJk0kNPWDDyAzU3E+cwH48ENZd/0patvt2wdH9p5kF2cQ3aI2JlJwwbIUbGJiYNas4qt8PDOHkICTjFv/NJdfDqtXw9QP2pBNE9qPaAt79sDSpfRwmTa6BUkwcKBYCT5l/P19fR3zOQCEh+tKK4X8fEg64kMsB+GqqyS8KzDQKAWDV2GUQl1T0lKwh498JSZ/1Sp49VWYOBFeeEEmlM/JKX1DrC5z3k0ilUguTnkXcnIYPdo5rDGCBAgJ4aqr4KabpBxEaqqMqNxyC44sYZDPQ4dC94cuIokYLr2kli0FSync8pckzjkHhgwpXp4CYNvPe+mXt4JGU//JbdfnMHQoPDFHUpE7XH0mBAXB22/z7BPZxLOWMcyVyosvvwzTp5d/7O++g65S3TQirKjSSiEpCbRWYinEWkV+AwLwowCltFEKBq/AKIW6xsWn4LAUfH1pUSARL3YBxH//W947dYJ27U791F5Z3novkBgOMbbgW1ixgtGjpb1n8D6iSBENoTWdOkm45+jRsHy5KKcnn3TuJyFBSjmkZDUmkqOMm9SkdgS0sZTCG39bz4IFEhVlO3EBKCoiKT2QFo0zAPBZtoSrr4YiLX/p9t2bwMUXw4IFtCraz1r6MAcpY0HfvrKsPAYOhHvvBSC8WT6pqTBzpijBAwckWc71Bn/ypBTZs+dgiOWgc7LqgAAUEOBbaJRCAyM9XR7YGhpGKdQ1llLw89MyeuHnB7GxRGfudKzy6qvFC7HFxUn5iZqyfj38uLYlN6iZ+PsUwaJFdOoEgwYWManwY1kpJwcyMuhoVcD+4w/4179EWf3wg7R9+60kggUHw63xS3kq8GkCmtZihVRwDh89+yz897+EhxdXCnrrNpKKmtNicHvRrvPmcd55zuXt2iFP+wcPSsE7QH31VfESqRURIhVsw5vmkpYm+W1Ll0pw0sUXSxK0TZ8+cr4OvifJcLEcFE8+WOagUQoNjfR06NBB/iZ2WHdDwSiFusYaPgrwdxluadOG6LQtjq9XXVV8k27dYOvW4sM31eGxxyDY7yR3d/lJHKrLlqEUrLztQx498YjzwIcPO5QCSJ24M88UpbJ+Pfzf/4n1cMMN8Fqfd7il+Tc1E6wsbKWwcCG89BJhYaKvsrOlOWvRKk7SlJj+sVLddP582reHTgF7iWmURuPGODWrHc/au7dMyFwZQkMBiGhykpQU+blAhtN694a1a8VaWL/eoXNYt0Im0Mm94QLLDKSYUjDRRw2HmTPlIUVr59wcDQWjFOoay1Lwd32wbtOGFklrGTZM8gbsuHubuDgZ1dmzp/qHPXoUZs+G25q9T1jPVnKX//13qf/wwgtS98cu9nPoEB2s/K6oKLkhDhokq44cKWWCDh2C559HroxaTWW2cHU0HzxImJ+kNdvWQlLCVgBa9IwSp8f69ZCRwSPqGe7ou1xWsjXbokXybo/zVwbLUohpmklKilS+iIqSCXrsXI7kZHjvPecmS/e3JVDlcvLKMc5GYyk0OLQWa37oUPF1uSaDNgSMUqhr8vPJx9++Vwht2uB3cB+/Lixk4kSkWI/9SIwoBajZENKPP8qf+bL0GaIQhgyRokKLFsG6dWIl2OPghw/TpAl07iwVIHx8nMMlaWnw+OM452OuC6UAhGXsdRwO4PAumcOhRYwSS0Fr+OknpuS+ycOXWVepbSmsWSPRRlVJubYshZaN09BarIG//AUefNCpWw4dKl4ie1l6HJ2CklCugVi+vqAUgb4FRik0EDZvlge0yZPF57dz56m38SbqejpOQ14eeYQQEOBy52jb1opnTJIxie7dYfBgeOcd6NKFbt1ktfXrYdy4yh1m714Z87dD8WfPhlbBGfTOXA+TJjk9ZC+8IO9nnVVMKYAktVnpAkRHy5Oynx/cfTcSMxsQIN7oqs6VWRlKKIXwI1uBnhw7Jm6CFUkyDNSiBdBukNx8P/pIVm7TxtooXJI9srNFCVYFSynEBkhUWFGRM9fNVoiH1qdweF0R3buGs2mrH3k6gC5RJUKVlIKAAAJ8jFLwZoqKYNgw+Q906SJto0aJBZ6cLJdDUJBnZawtjFKoa2yfgutDq30T279fwiG1lnkku3aFF14g5O676dULFiyo3AQ4OTnQq5f8UR99VHwS33+v+Vvjr1GjzpG7mtaSITd3rox/9+snN1CQ4nC5ubQocbDNmyU72NdHi7URHi6NJZ0gtYF/ccd12IH1wETS0sR6OX78TsBSCs2aibf3xx9l5bZt5V0pp8V1yy1VO741fBTr60wQsdMXHLrz0wQOb+/NgMYr2N14HNnZiq6ty5hTNSCAAGWUgjdz5AgsW+b83qZ1Ee3aQMeOMtiya5f4mhoCZviorsnLI4/A4paCrRSeegpef13GKdavl6f355+HggLOP1/+lJ9/Lo7fktNMurJkiSiE0FCYOhWuvhp6RRzkqcy7JIwG5Ib54IPyOT/fqRDstjIOEBkpSoHNm6WmhO3A/b//q+aPUUmCgwk7tAmQ4aPjx52LHEnJ1qxpgFMpgMy0AxQLTaoMgYHQqBEt9UFHk20pREWJYXLwiD+HiSEmexdtWsgdv2vnotL78vcnwCffOJq9GHt6Vfuv3jXpV/jHPxxuq4Y0hGSUQl2Tn0+eT6PiD8Jt28pNaP58GTb6z39kCOm++2Ss5IcfGDNG7t2TJsnD/X33iUlbFj//LCM7iYlicPzwVQ6Lj/Ui5K/jcSQmgBQ/6tpVwj5tnnkG7rhDlNKMGTK8VDJ7y643ERAgMf+uoUruoHNnwvPkib1k0UBHUrKrtWJliQPwxRfiOykre/lUhIQQmXeIAH/5oaOjgccfx/fMQbRoAdtSIjlJU1pyiDbN5Dfq2iug9H6MpeD12ErhkUdg+uQVvJp/E7zwAmc0koeGhqQUzPBRXZOXR74KKO5oDgqSSQEiIorX47noInk0T0jgrGf/QrduMjQ+dChce62MlpSVg/Xzz+J7bdpUdAy/LIW8Y3DFFcVXDAiQinsl6d1bZuK56Sb5Pn26OKRjY2U45qOPZDLnRx5x8Ti7kY4dCVm+EqWKTxUa1iQHsKbStAd6gWKeXn//UkNRlSY0FJWRTsv8feylPc2bnXRk8MX016zZIH6NGA7ThgNADJ0HhvLHiezi+wkIIDA3zygFL8ZWCm3bQvy+RyA2G5IKCPrkLVq0+FeDikAylkJdk59Pnk9gcaUAEsZQskCbn588yW/dSmCgzAnwzjvyUBwWJs7jkpw8KSM7drFPQJwRfn6iTSqDHZQPMpflwYOiAAoLRbFs2SLOjb/8pXgWl7sIC8PnZBYhIVIGBOBnRrP3lR+Kr7dzp0RS1RahoZCeTkvE8R79m/MHbxmZx95ccS7EcJjLA7/hLl4kuHOL0vsJCCBA5Rul4EUUFsqDVYcOkrS5b588u4X4nZAIjClTZOHmzXTsaCwFQ03IyyNPlaEUyqNrV0mlxfkA7O8v9+Lffiu9uv3EYkcsAZIANmiQM5ToVHTvLoPm7dpJVb5FiySn4b77ZOjolVcqHwZVGzRrBllZhMWIQw8gnnUEtwouvp5rGnhtEBICGRnENkvHLyufsP8+4ljUMuQkINECMRym2/6ZnNv0BATfVXo/AQEEYCwFb2LvXqdjecYMGX1s0wbUju0SpGFnMO7YQcc+MG+eB4WtZYylUNc4HM2VXL9bN7FdT5wo1jxwoFgOJWcl2yo5Xc7RlGXL5IZ+0UWVl7FRI8nQevRR0UR9+0ruxBtvyBPS7bdXfl814cMPJXW0aVPIyXGU527WuIDmHCm79HVtYlkK54auYSw/ovY6swcvG7jf8bklhyQ8pUOH4kNXNkYpeB32qGrv3mJo79hhxS/YF1jXrmLd79hBxzOKOHSo1CXqtRilUNfk55NX0qdQEfYj/7ZtxZoHDRJHsz2vss22baCUptOqj+GXX8SZHBsrzuOq8Mor4rgACffUWtKqS/ol3MlVV4kMloXTPFwmyukSnS7VTutCKRw7xk3+7/Itl0jbY48BMKr5BsdqwViTSNtp4CWxlIKJPvIebKVw991ys9+0yQoS3LpVzIaOHSU/5+RJOoZLRmVly2rVd4xSqGvKKnNREVYJZ8e/dMMGyM5mwAD5unJl8dW3rs+jrd5L4xuukjDM1FRxRJRIBqsSffvKe+PGksFT11iyv/zEMd59Fz6YZOUjuFspREVJcl5amvhkzj7b6Xzfvp0jRLHy/q9QkVL+vCKlEEiusRS8iC1bJNpswgRHygoDwnbKgvbtxZq2kjY7+oo2aCh+BaMU6pqyylxURKdO8gdctkymQuvVC556iqgoGfqfP7/46ts25NKFbVKt7ttvJR9/zJgyd11pYmPlChk5UmSpayxLoWNUBlMafUq3t++Vp7Xg4FNsWEOio8Ucy8iQ337JEmcG2/btRJHCoL75ojygYktBG6WwcqUYnN7Als1FxIUepGnGIXZvyiaFCK77TycJcbYz+K0JwDtmbwQaTg0koxTqGstSqLRSCAiASy6Rp307n+AXKdF8wQVyn8rOlgp6990Ha3c0pScbJBFu/Hgr26yGKAXffw+vvVbzfVUH28o5cUKGr1JT5WZdndyDquAyA5td9gJ/fwn9sofzwsKcSqG8CqxGKfDzzxJO/cYbnpbk1OjCIrasPkG3bd/Cf/5DeM4hIkhzZi/ayaatWkGjRoQkbqJ9e2cup7djlEJdk59Pnq6CpQAyrp6XJzedv/9dwi5zcrjgAmm+8MKhvPGGJD+PbbWOR6Ledtbzry0GDLAmKfAAdtRUZmbdHte+CYBTKYAoAbtetqtSMJZCudjTyS5f7lk5ymPJEqljBDDvk1QyCoM4k+UyoYg9e9IHH8CXXzr8So6QpH37GD9entVKBn54I25TCkqpmUqpI0qpjS5tTyilDiql1lqvC12WPayU2qmU2qaUquF4R/2hlLmcl0eeroKlADKR8l//KtOfnXOOaILVqzn7bGfFzqeflvcb/WYR1reScwZ4C7al4Dofp+1UcSdlWQp2+8mTznY7g7o8pRkQQEBRzmntaLYL1Kane1SMMjlyRFxlzZtLlOkzz/vTkoNMjNssSmHfPlkxNlacDHbxK5BzbimF3NyGMbeCOy2FWcD5ZbS/qLXubb1+AlBKxQGXA92tbV5XSvmWsa1XkZoqD5HFZmbKzydP+1UtydbXF95/XxzHZ54pbUuXEhAgLoOhQ49y6JA0xx34WaKFGhK2pWCnM8+eLfU73E1FloJNWBhcfjk8/LCzflRJAgII4xi5ufDEE+4QtP5jP0EXm1K1nrDBGUhGnz6QsDaUB3iOgKsmSnVJ+05f1nwcbdvC3r2cfbb8XbxheOxUVEopKKXOVkpda32OUkqd8lFUa70YqOSU54wHPtVa52qt9wA7gYGV3LbeMmeOKIb//MfFYsjLq/rwkStRUZKEYGXW+PtDp05yxTVuVES7gh0Np1yjjW0p/PGHvMfFlZ6JyB2EhTmP46oUSiqLESOck2qXhb8/tzaZxcUXy9SmGRlukLWeYxcxrM9KYcMGeO45mHvFe/zd5zW47DJZ8PXX4psrK7ChXTs4ehS/vJM89JDkNNhzOnkrp8xoVko9DvQHugDvAv7Ah8BZ1Tzm7Uqpa4DVwL1a62NALOAaXJlotZUlz03ATQDR0dEkJCRUUwzIysqq0fanYubMOKA569fDSy+tpXfvdPofO0Z+kS9JSftISKjeVGpdzjiDyF9/ZdnCheDjQ2xsE6A97UIO45tTxG+5uWS7sV/uorzz4Z+WxllAwerV+Pj5sWTvXrTr7DZuZEhoKIGpqazcupUcy6fRtH9/7MGrBNd6yhYl+9E5JYWIk0kMGLCR77/vwaefrqZLl/o/+Fyb18f69e2AdiQl5ZGQUDeOhZwcH/75zx5ce+1e2rQpvy/z5nUhLCyClJTlDBgA3X7+gJzo5vx28CBDIiIITE3lZKtW/P7rr6W2bX7iBHHA7198QVxcexo1OovXXjuMUu6JT3X3PQsArXWFL2AtoIA/XdrWn2o7a712wEaX79GAL2KhTAVmWu2vAVe7rPcOMOFU++/Xr5+uCYsWLarR9hWRl6d1SIjWl1+udWys1vHxWn/9tdaHO56tQevHHqvBzt99V2vQeuNGrbXWn3++XIPWV3VZpXWTJloXFNRCD+qecs9HZqb0F7Tu0qVOZdLx8XLclJTi7UeOaL12bZmblOrHbbdpHRGhN2yQXb37rtbr1smi2bO1Hj5culjfqM3r4667nKcwJ0fajh7V+i9/0XrfvrK3OXpU686dta6uGN9+K8d76KGK+zJggNajRrk0DB7sbLjiCtnJ8OFlb7x0qSyfM0drrXWHDrKJu6itcwKs1uXcVyszfJRn7UQDKKWqnQWltU7WWhdqrYuAGTiHiBKB1i6rtgIOVfc49YFFi2SYYNIkSQ5etw4uvRTa7ZJw0moPH4HMswCOmkiRkbmM75fIpdv+LXkMdTG0Upe4htW6Y5a3irCHiuwMJht78urKEBAAeXmO4KSbbpJNZ82Cd9+V+mpPPVVrElcZtw/pHDzI8Xe+cHy1jbzHHpNUmg8/LL56errk4LzwggR5TZxY9UPm5zsLRm7aVP56OTmyvGdPl8Zdu5x1tEaMkPfyaljYc3dYQRDNmzujmLyVyiiFz5VSbwKhSqkbgV+QG3qVUUq51lm+BLAjk2YDlyulAi1/RSfg9+ocw1OcPCnjxW+9JUnI99wj/tHzz5diorNnS9GsCJ9auAI7dpQ/45dfwt13E/bHGr5d05pL+UaUQkPDx8epGOpaKTRvLifSrwa1Iy2l0KSJhLbn50vzjTdK8qGvrxSj9YSv4ZVXpGJ7sWCI2mbzZo67RBPPmSNpJvZEeSWn61i1SuZx+s9/5HtKSvHAM1cKC+F//ys+z8bRo9KnmTMdhy8TreFvNxdx8iSMayIPa/zxh+zALi9jlxu2o81KEhMjAQZWvZmoKIlm8mrKMyFcX8B5wH+BacB5ldzmE+AwkI9YAtcDHwAbgPWIIohxWf9RYBewDbigMsfw1PBRWprWZ52l9W+/yfeCAq1HjnSaxz4+8n7lmBStc3OLbft5yA0atP7nP2skutb/+IfjgHlBQfJ57FitDxyo4Y49R4Xno3lz6eObb9aZPFprGRao4lhfqX5MnSqyp6frESPk4803a+3nJ59vuknev/++9sSuDLt2ad24sdb+/lo3alT6r1Nrw0dffKFHM1f3a3VYjxrlHAW0r5eLLy6++g8/OJf5+sr7yy+Xveu5c2X55MnOtk8/dW4/bJi833LLTr13r9YTJ2o9YYLWmzc713uMJ+RDYaEME0VFaZ2eLjsrKpJr7c8/y+/fddfJsG1qqr7uOq1jYmrwW52Cuhg+qszNvT3QyOV7Y6Ddqbari5enlMLMmfLLXXqpfF+5Ur4/95z80TZt0nr4oJN6KWdp/eyzxbYtCgvXP459TR87ViPRtd6+3fHPL1JKPq9cWcOdepYKz0f79tLHhQvrTJ7qUqofCQki++zZ+sYb5eNvv2n9179qrZSMqQcGan3vvXUr58MPy033559Fphkzii+vyQ3o4EG5n2qttX77bT2Y5Xp02606O1vusfHxWr/+utygO3cuvu177zlv6hMmiE+uvHH6K690Poht3y5tN90k/rz8fK2/+MK5r/79nZ8vuUTriAitB3bN0PlYmufee+X9lVeq1tl162S755/XDz0kStbR91qmvvgUvgBcJ34stNoaJKmpUlDUrttvo12S0L75Rt6/+w4OH5bK1CAVGCZNkojJhOs/5CyWyRCPCyo/jws77SgW4VgtOnWSDMuRI1G2cO6eFtOT2LkKdT18VBsMHiw1oxYu5KKL4NxzoV8/ePll8T21aSMlIOoylFFrme971ChJf4mJcVRPqTGrVklI/9ChVn5CRgbHCSa4KJ1GjcR/snatVGfv0kX8Bu+8I5P6gVyDNvHx8tuULPyI7JZvvhFfnZ+fswrLwoUy6uPnJ74Jm9WrJYT7sstku9RUeG3SYvwolAXPPy+JiNddV7UO9+olB5o3j6goGR705rDjyigFP621I0Hf+lwTN2m9pbBQbuqvvip/nJwcaT98WKpGvP++jG/Omwdjx8qya6+VlIGYmBK5LfYVvmqV07MG8o+pkZfZhauvdgoSGur+qqGepGlT8Su4ZpN6C4GBEhywcCHjxjn9CKGhziHrkSMlN686Tt/CQplS2/XB5VR88YU8+Pzf/0lpq3PPlRj78ub9rgp2xOSyZXKzJz2dDEIILkgtta4978cNN8DbbwNak7pYPMOtW0stx8GDJUmz5Pzc06eLInn0USkP9sEHUkZj505Rdvb+n3gCJk6Ua3DoULj5Zll27rnQ39dKiFyyRP5f995bvXphw4fDsmVEhRcC3u1XqIxSOKqUckyzpZQaD6S4TyTPMX++XBhXXCFPMp995mw/cgQmT5YqEyC5Sm++KcmOn30mk9445lfRWq6M/v3l+8cfOw+Sl1f9OYPLwi6tfcYZZU/w0lAIDxfnn7f28ayz5M5dTq2LESPkb1Odompvvy1P1BMnioI4Fd9/Lw8/XbtK1QYQayElpXaKuq1eLTld/fpJdJXDUsgpHZbj+iT/1VfAkiWkfruYiEZZ7N8v19WQIbLcNSUkN1ec86NHS2X3G24Qh/XYsfKwP/myEzB8OD4rlvH44zBxYiIBARL0MXKklBCbNg2ZwCo6WiYoSUqCBx+sXqeHDYOsLKIyJD/BNQLpzju9q/xFZZTCLcAjSqn9SqkDwIPAze4VyzN89ZXMw/rOOxJFsHChtNsXyrBhUpPtww/FYrz+enmBDBk52LRJzIubbpLHkRdflJ2cOCFXfm1ZCuBUCg156AjkN3zvPU9LUX1aWxHXdmW4EgwaJCNM1clLsrf56qvKDUF98IHcB9eudSZqT5gggVYVJWZXllWrpDTVtddKKPa6PcFkEkzIycOl1u3bVx7EHn5YHtaTjyjSCCdCO62K/v3lunSd8nLtWrEcbrxRvo8aJdOInzgBzzwDIb/Nk2vu++8BiIrKZft2uPVWsdJeesmKKN63zxlWGhRU/YcOa56R5ntkjlxbKRQWyjDh+WUV/KmnnFIpaK13aa0HA3FAnNb6TK11A5lOwklBgcRMjx0rEWYjRohSsJ/exo2TePI9e5zZ7yAhfQ8+CLdckuy037/7Tt7HjpV/anKymJfnnivttakU2rUjLyxMHssaMp07F3+s9DbsYa/DpW+M4Bxhqo5f4fff4cILxe3yxSm8fdnZ8NNPMtwSmJUqY6KFhY6Rk/nzi9cCqiopKXKN9O8vpd0BFu6RqjjBuUecjgMLpcT6vuIKGbr6dmEQqUQQkXtQFOlllxGQm8l554nc9iVmy2iX+VIKpk4VpXD99cAPPxRfEbn3l0rh2b/fWQq7JsTEQGhoKUshtfSIWb2nXKWglLraer9HKXUPUlriRpfvDYp16+QPPX68fD/nHEhMlO87dpSYcGz+fMcwQGPfPJ5ZfyFtBrYQbdGxI/zjH2L3tmwp2uXrryUTZ9Uq2b42h498ffnt/fdl3kBD/cVWCnblQpA7eHy8o6bT8OHyPzxVhXDXPKqjR2UayBEjZBrur7+WB5zy+OEH2f6S87LkIWXyZEdA/+TJcnP9+utq9A85rj3r69ChMoTUpAksT5ZEsGCOi6V09Kg4c7t0ccwo2KOHxE58tbi5KAVS5QL86iv47DMuvFBcc3Yi2oYN4mZqH1R8JNs/J1MuXjtJYcMGyM1F2cItWOBc+dCh2lMKIEohT8ps2z4F2zC04yS8gYosBTtzOaicV4PCnkrPfhg9/3x5elu7Vvy5V11lrfjrrzKQOX26fF+zRrJxBg+Wq8n2ho2z3DBKyWPZ3XeLb8HXt3iVzVqgsKbJVQb3E2PlbboqhWnTxM9w7rmQk+P475WYjttBdraMiTdvLkNGo0c7q3sPGiTFWlNSyh+/1lrmaerQAc757k65YXbqBI8/DtnZREeLtWJH11WVl1+WJLhnmz3FEL0cHx9xAy1Pl0SwYI7LMQcPFmfD9u2OMSGl5Jlq4ZYW7KWdKIU2beR62b2b886TY9hDZRs2QPc2x/Fp2UIObDNrlphb4eHyJHfgADRqROcXXpAIknPPFW90Sopc7NnZtVdAMiSERplHCQpyWgq2UggLq51D1AnlxapKKCu+wN0VrePJV3XzFHbskGSXjz9eoV95RerO/PvfEmqcOXepBDhrqV9UCjsw2q6FMn26fN+zR+ufftL62DEJ/LYLvJTkyJFaD2J2Zw2nuqRB96OwUJICHnlEvm/dKv+bgQPlfc0avXGjfPzww9Kb//ij1gEBzjj7Fi0k4WzMGCnTc/Kk/F+joiS2vyzsRK8ZD+6QDw89JP9Zl9o906bJ1yuu0Pqnn36tdJ+Tk7UOCtL6wrg9soOOHbXWcp3ZMv/CKEk6AK2XLBFhr7vOsY/Vq53r3s3zWt96qxQTmjRJFxVJXsENN8i6UVFF+voQKwkhMlLr48flN+7cWetBg2Ql1yw412y4KVO0fust+T5vXqX7eEqGD9d66FDdoYPcJrR25lzEx9fOITyep6C1LgTGVbSOt/Lee/Cvf8Vxxx3w+uuwZ1cRzQPTaXb+2Y6i9/7+yBNFt27yiJKWJuZs06biFfvzT3nSCwqSAcsLLhDP3ejRzllFShIV5b0RNIbq4+Mj1sLMmWKG/vOf0vbMM7J83To6dpSmsiyF2bPFET1/vvyFkpJkaHPuXMkvaNxY/q9XXy1P+hdeWDrQaepUKbNxzcH/SBnof/5Tnqb9/BzRFLfcIiGbn3wCCxZElxakHBYulGGvJ7pZIXs7d8L8+Q7rp5FvHkMvDpVZzEaNgrPPlmiN9esd++jbF9oFS82LiOB8Mc87dIA9e1BKHujXrBE33dGjih4ZS8VDnZICM2bIj7N9u3MMq2RtqpEjJQb3xx8lZLBjR6efrzYIDYWMDKKinJaCPXDQYCwFUShMBV4FhgJ97deptquLV00ymocMcT48dO2q9Tm9juhBrJD8e39/eZLTWkqbgtZNm2r90kvy2U5ptl9nnlltOWqDBv2E7YWU248BA4r/bx55RGqkNG6s9Z13aq0dD8Z6xw6tH3xQ64wM2bRvX2fhzquvls0//1xrfeiQ1v/7n6MybmqqlHKA4kVclyyRtpen5WrdrFmxJ3Q9eLBcEElJWmsxZLt21bpHj/RK9/mRR+QhPGfwcOlnx45an3GG/vqTHA1aXx//u9a//ipCfPedbHTPPfL9xRcdZSXu6zlXg9ZvvGHt+KabxBJwWR20Hh+9XB+L6SZW/eDBWsfFSZmX5s2LW+mLF2u9aZMu8vGR43z8cfHfvzaZPFnrNm30RRc5LQNb5tGja+cQHrcULM5EZkR7Enjeek1zh4KqS/76V3nv3Bm2boWF66Po4H9AHFFKifkAzuiFEyekQlf//hJr98svzogfOyzUYKgIu9Jq377wwANSQdHXV0p0rlsHiO912zbJzn32WZlo79tv5W9op71cd520X3ghEj99111W0L0Mpduh9q5F5N5+Wwza60O/kjTjq692Lhw+XGaya9ECNmxAKZgyBTZuDGHPnsp1bcMG6NJFE7hhtfgMXnwRdu3iosLveJk7eGnCErFKDh1y+tvs0qR33w1PPgnApOYSfuXw/XboIJbA8ePFhv6/OjKM0OusVObrrpOqdz/+KGaOq5U+dCjExfH7e+/B7beLlRYVJTJUNyehPEJDIT29WKXUpL2SAetN83NXRilM1FqPLPE6x+2SuZmrr4Zx4w7y008QFCRxbh06+0ta8qWXSjB3To4MEbVoIX/0pCSxr0FM4Icfls/tG9icyAb3YI8LPfusvOzggN69ZXjy8svp0lmzfbuzzEpWlsQp5Oc7p6UeOVISuZo2xVGdk8ceczzA2FNF//wzXHmlhEV+9ZWMnDR563/yJGSnUoN4eO3Z7b76CnDetysbIrtxI/RskyEPT3ZtCsB/7Sru4FWaNrf2bzvcQa4pkLGVN96ApCT6+/7J1p4TnXH9dr3xPXvo21c+3nz+Xnx1gTP4//LL5fOjjzqvyRJkt2olv3dYmIQFf/dd2TOp1YTQUDh+nKiIIo4eFXMk6WvJuGsQSkEpdbFS6iiwXimVqJQ6sw7lcjtBQXD33Ts44wyYeI6MY4b1tpJYbrhB6g3cf7+ECw4fLhEL27cXr4ty6aUSPH1Pg4vQNbiDe++V96FDi7f/3//J+2ef0avdcU6eFIN1wgTRI/b92lYKpKWJb+LYMVEKo0fLDemvf4WCAsLDZZu33hLfwD33iHL5a/8tktTw97+L88Kmf39Z4eyzHTk2XbtCSEgeS5aculuZmZKb0HPZm3Lgc86R2tVhYU6lVXI+Cvsgqaniz8jOlnjZjAy6tMhwimfPazBvHt27iyvv1QHv43AygFzMc+bA00+XP0+2K+6ab8TqY1RQjtQ/SskniRZAuYns9ZKKLIWpwFCtdUtgAvCfuhGp7pk2YQWTmcUV11hPbuecIyb5q69KHHPv3vIn7NSpuJNYKXEuV6dWiuH04847JUOrZBDCqFGOm/FZrfcDUr6/WzdZde9e+PbrQtqEZ8kj+X//Kxla4eEScjl6tPxX162Dzz9HKbEW7JIX778vGcxD97wvT8v22GlJxo+XGOydO1EKevbMqJRS2LhCEit6qE3y8GRbzh07Ss0LoNwKkOHhUg4gOFis8oyM4gqkd2+xAh58EFas4OyzwW/dGhlnq2/B/1Yfo5pIIsmBTcdJpBXQQCwFoEBrvRVAa/0bDTA3wSYsbRezuJaW/awEI6Uk2WzWLDFxxzXIACyDJygv8qyV3Dw6qZ2ONBZ7npfIXz5l/KV+kuHbq5c4CFyLH/brJ2ZFXJxEMxUVOYaQbMaPB595cyURobxhkyuvlGx7yz/Rs2cGu3ZVPHMZwIqPxfEw4I3rik/y1KmTmBFKOR0iZeHjI6nJa9bItGuuSsHHR8wdrSVHCMR6t8eS6hOWUmje6DgAjz4ZwHFCiOJIg1EKze3sZSuDueR37yY3lzYffwzHj4s10KRJ8QtNKUnxXLGiRGEjg8ENWEpBHUzkrE6SDtutvVWm187YGjVKbugpKVJ/euZMGXPv109uno88In6FGTMcSsGeTfQvw4+JFTBmTPkytGwpFsjMmZCczLBhR4mMlMNWVK5h6epAOrCLlheXKLVi1+Pq00eq1FVE375i6aSmlrYqQkNFti1bJMs5MbFeK4UoPyl1+/2iIMbxHef7L2www0czKJ7BXPK7d/PZZ3SYMUOsgf375SnM5A8YPEVkpDylJyYyNnkmYaTRZYM1F8fGjRK58+WX4ucKCJBH/2uvFY90kHU5XnmleKHvv592MaJQXnpJqq6cmyEO5AqVAsg+8/NhyRJatMjlgw8k1t52DZREa1i6K4azG61xymFjK4XRo0/d/759JbAjP79s/0O3bhImOG2a+ATsejT1CVsp+Dg16N95mQB/7VWWQrm1EbTW/6pLQeqcDz6Q99mzxcStrfonBkN18PGRyLfERK7vuJ6rdv2LxjPj4YYrRSnYdVYefljiRYtN3mGhlIRdTpjARV13sXpSd8aPh0n/p6HPqxICaleQK4/4eFE6VpU9O9radUoQV3bsgKM5wZzdaV/phQMGyL4uueTU/bfrY0P5TunXXhNrYvLk+lkV2FYK2jmZwggS+Nr/Oq9SCpUJSW14HDoECxaQ36yZjFNu2GCUgsHztG4NiYmoXTtpTA789pv4tDIypGIcOJVHeVhloLv67eTTTyULmhUr5GZ6++2ntoYDAkRx/CYloGNjZZP9+8te3Z4RbUiPMqr4de0qUU0DB1Z8TJAoo4qGhGwHS25uuWGnHsdSZo2zJZpxfI9d+FJEQGDDcTQ3XFJTYfhwdt5xh5R2zM42SsHgeVq1ktjOPXvEPzBtmrOyrq0UToU9b8OePY4KpHz/vUQdXXFF5fYxcCCsXo0qLMTfX9J0yrMU1izPpQkn6DawnBHlqlQEnjlTIorOPrv0Mnsa1saN66eVAE4Hfno6mZnw1fj3AQjw0w3GpwCAUqpUER+llHfP+9izJyxaRPJ55zmjJWq5cqnBUGVatZK7b2Gh3ATvvVdqYkPllUJUlMSxPvusbLN7txQmGjy49Jh/eQwaBCdP0mSfDAm1aeNUClu3yvfx4yVd4o/f8ujNWny7dqpaX8siPl6GcsuyGOwp2OpyIuuq4ucniiEtjWbNwDddfAsB5JGXV7XpUj1JZSyFr5VSDnWvlIoB5rtPpDpEKUmNP/9875oaydAwOess5+dO1k12/nwZuK9sRTWl5K6dlCQ5EXPmSK6APY9sZbCGe4IsS6N1a+fw0eLFoiBmz5YCe39uDqQfa07tq6gpISGSAzFokHuPU1MiIpyhWmkyjBRYdBKtKzdVan2gMkrhW+ALpZSvUqod8DNQTwf1qkGrVnLhmFIVBk9z8cXOREh7uMTPr+rDJfYQEki+TVFR1ZRCx44QGkrw1q2O3R04IAl1W7fKCM5VV0l5oxN5AfSLPuic0vJ0JzKylFIIKPKu+kennJlFaz1DKRWAKId2wM1a6+VulstgOP1QSoZ7li49dVx/Rbj6x3bvlnpDrtE9lZFj4ECCLKXQpo243Zo2lbSIzp3FSjh8qIj0X9dx3pjT0zVZJhERkkcCTqVQKFOQ5uZ6R/GDimofuSaqNQJaA2uBwQ0iec1gqI9ER0t2ck2wlYJdN+i226o+L/igQQTt3AnTptGmVZGjefduCSpq2xYWTP2NNUV9aTmugmzl042yLIVC77IUKlLxrolqzYBvgJ00lOQ1g6Gh0r27RP08+6z4B26+uer7sIeb7r+fsVG/8+mnTl93ly7WOhs3ynu/fqU2P22JjBRL4eBBqcYKBBZILSRvUQqnb/KawdBQuewyGS5q3br6VseIEfz5v//R5667CEzax6RJg/njD9EDjulDtm2TSCcTzu0kIkIiqMaMkczroUMJWO0cPvIGKhOSOl8pFeryPUwpVc7U4MW2m6mUOqKU2ljGsvuUUlopFenS9rBSaqdSaptS6hS5+AaDoVx8fIo7m6tJlj38ZMWj2tMuOHLRtm+XKCkf41NwYPuCNm2S+R0GDyag4CTgPZZCZc5mlNY63f6itT4GNK/EdrOAUnGeSqnWwHnAfpe2OOByZIa384HXlVJuKnpuMBgqQ2GzZpLbYCmFAQMgM6PI4apg2zaXsSQDIJaCTffuEBDgdcNHlVEKhUoph32olGoLnDINQ2u9GEgrY9GLwAMl9jEe+FRrnau13oP4LiqRG28wGNyKHY8KsHYtqnEjeO89+PxzsRTs0FmD4Bo11qULBAYSoL3L0XzKkFTgUWCpUsoqZs4w4KbqHEwpNQ44qLVep4rXYIkFVrp8T7TaytrHTfbxo6OjSbDLCleDrKysGm1fXzD9qF80pH6kNW2K3+bN/JGQQMyPP9IlP18K8llsLSoiyQv6WlfnpOnu3QwAivz8WLJ/P60SEwlAtMHKlX9y8mRGjfZfJ/3QWp/yBUQCF1mvyMpsY23XDthofW4C/AaEWN/32vsCXgOudtnuHWDCqfbfr18/XRMWLVpUo+3rC6Yf9YsG1Y/rr9c6OloannxSa9D6uuu0vvFG+bx+vUdlrCx1dk4OHpTfpVs3+f7ii/pXhmrQ+pdfar772uoHsFqXc1+tjKUAcCZiIdj8UA39cwbQHrCthFbAH0qpgYhl4OoZawUcqsYxDAZDbdK6tUyo8OCDUjqjeXN45x1Z9vzzla+ndLpg+xRsX0tAAIFI2FGDGT5SSj0DDAA+spruVEqdpbWuUqkLrfUGXBzUSqm9QH+tdYpSajbwsVLqBaAl0An4vSr7NxgMbsCaEY7nnpP6FnYJazAKoSwCA6VMiF3pNTDQMXzkLSGplbEULgR6a62LAJRS7wF/cor6R0qpT4ARQKRSKhF4XGv9Tlnraq03KaU+BzYDBcBtWmsvKR9lMDRghgyR2tlJSVLrwlYShvLZutUZphsQ4FAKDcZSsAjFGUlUxrRIpdFaV1i8XWvdrsT3qcDUSspjMBjqgrg4ycyNjZXJqYxSODW+LtH0LpZCQ1IK/wH+VEotAhTiW3jErVIZDIb6Rc+eRilUBy/0KZwyT0Fr/QkwGPjaeg2x2gwGw+lCz57ybpRC1fBCn0Jlylws0Fof1lrP1lp/p7VOUkotqAvhDAZDPcFWChXND20oTUPyKSilGiG5BZFKqTBk6AggGIkQMhgMpwuXXCJ1s8uaP9lQPoGBXjd8VJFP4WbgLkQBrMGpFI4jyWYGg+F0ISgInnjC01J4Hy6WgrcMH1VUOvsl4CWl1B1a61fqUCaDwWBoGAQE4EcB4D2WQkUzrw1QSrWwFYJS6hql1HdKqZeVUuF1J6LBYDB4KYGBKCDAr9D7lQLwJojdo5QaBjwDvA9kAG+5XzSDwWDwcqxpUAP9Cr1/+Ajw1VrbCWuTgLe01l8BXyml1rpdMoPBYPB2AgMBiGyWw5EjVZwn20NUZCn4KqVspTEKWOiyrLKZ0AaDwXD6YlkK7cKPs3evZ0WpLBUphU+AX5VS3wHZwBIApVRHZAjJYDAYDBVhWQrtQtK9RilUFH001UpSiwHmWTW4QRTJHXUhnMFgMHg1tqUQcoxDqyQs1dIT9ZYKh4G01ivLaNvuPnEMBoOhAWErhWYpAOzfD506eVKgU1OZOZoNBoPBUB18fcHX16EUvGEIySgFg8FgcCeBgbRtfAQwSsFgMBgMTZsSy0F8fWHPHmn6/HPYssWzYpWHUQoGg8HgTiIj8Us7QpcusG4dfPstTJoEd9TTcB2Tb2AwGAzuJCoKjh7lzDPhq69g9Wpprq9RSMZSMBgMBncSGQkpKQwZAseOwRFxL5CZ6VmxysMoBYPBYHAnLpYCQFgYjB0LqameFas8jFIwGAwGdxIZCampdO5YRKtWcPXVEBNjlILBYDCcnkRFQVERPhnHWL8epk2DiAhRCo46EfUIoxQMBoPBnURFyfvRo4SFSZJzRAQUFNRPv4JRCgaDweBOIiPlPSXF0RQRIe/1cQjJKAWDwWBwJy6WAgDLlxOBaIP6qBRMnoLBYDC4E1dLIS8PzjqLiNZXAB/XS6XgNktBKTVTKXVEKbXRpe0ppdR6pdRapdQ8pVRLl2UPK6V2KqW2KaXGuEsug8FgqFNspXD0KKxZA0DEwfVA/bQU3Dl8NAs4v0Tbf7XWvbTWvYEfgMcAlFJxwOVAd2ub15VSvm6UzWAwGOqGxo2hWTNIToalSwGI6CKK4rRSClrrxUBaibbjLl+bAnZA1njgU611rtZ6D7ATGOgu2QwGg6FO6dYNNm6EJUsACA88AdRPpVDnPgWl1FTgGmRKz5FWcyzgOqFPotVmMBgM3k+fPlIaVSkA/I4dJTTU6XuuT9S5UtBaPwo8qpR6GLgdeBxQZa1a1vZKqZuAmwCio6NJSEiotixZWVk12r6+YPpRvzD9qH94ui8xTZvSJT0dgJyoKPyOHqVFm+MsX15IQsK6Su+nTvqhtXbbC2gHbCxnWVt7GfAw8LDLsp+BIafaf79+/XRNWLRoUY22ry+YftQvTD/qHx7vy2+/aQ1aBwRoff/9WoO++cYCHRqqdVFR5XdTW/0AVuty7qt1mqeglHKdnXQcsNX6PBu4XCkVqJRqD3QCfq9L2QwGg8Ft9OwpU3OOHAlt2gDQu9NJ0tNh3z7PilYStw0fKaU+AUYAkUqpRGSY6EKlVBegCNgH3AKgtd6klPoc2AwUALdprQvdJZvBYDDUKY0bwxtviG9h+3YA+rRNA4JYuxbatfOkcMVxm1LQWl9RRvM7Faw/FZjqLnkMBoPBo9x4o7xb5S56RiXh49OWP/+Ev/zFc2KVxJS5MBgMhrokPByAJidT6NgRNm3ysDwlMErBYDAY6hJLKZCWRteusHVrxavXNUYpGAwGQ11SQins2CFltOsLRikYDAZDXRISIklsllLIy4O9ez0tlBOjFAwGg6Eu8fUVa+HAAbp2lab6NIRklILBYDDUNaNHw7ff0qVdLmCUgsFgMJzeTJ4Mx44RvuJHIiJg505PC+TEKAWDwWCoa849V+ZZ+P57IiPh2DFPC+TEKAWDwWCoa3x9oXdv2LiR0FCwauXVC4xSMBgMBk/QvTts3kxIsDZKwWAwGE57evSAkycJDThBRkb5q115JTz3XN2JZZSCwWAweILu3QEILUgt11LIzYUvvoDXXgNd5gwztY9RCgaDweAJ4uIACM0+XK5S2PzcDxQUwP79sH593YhllILBYDB4gpAQiI4m5ORhcnMhJ6fEcq1Z9+8fHV8/+6xuxDJKwWAwGDxFaCihRWkApf0Khw6xLqczjTnJuHGaZ56BRYui3C6SUQoGg8HgKYKDCS2Q+RVKDSFt3sxaetOTDXz6wmE6doQ5c2LcLpJRCgaDweApgoMJzT8KlK0UttOZODbTeOufDBgA+/c3cbtIRikYDAaDpwgOJiQnGSg9fFS0aQvJRBPDYbjoIrqlLiU5uREnTrhXJKMUDAaDwVMEBxOafRgobSmkrU+kED+i2zYGoOu+nwHHFM9uwygFg8Fg8BTBwYSePASUVgrJOzMBiP73nfCXv9CtYAMAW7a4VySjFAwGg8FTBAcTmpUIlFAKhYUkp/kDEB3jA7GxdExZiY+PZsUK987UZpSCwWAweIrgYJoUZeLrq4v7FFJTSdYSfhodDcTGEpieTPu2mbz6KgwbBqmp7hHJKAWDwWDwFMHBKCA0WBcvn52URDLRgFMpALx+/1ymT4c//oC//tU9Ivm5Z7cGg8FgOCXBwQBEhBSQlhbgbE9OJplo/HyLCAvzgVatAGiee4jRd0G3bpaycAPGUjAYDAZPYSmFyOA8jh51abcsheYRRfj44LAUAqyVhm2bQZddP7lFJKMUDAaDwVNYSiGqWTYpKS7tlqUQ3ULJd0spBKakSLnUf/zDbcWQjFIwGAwGT2FbCk1OFLcUkpNJVi2Ibmndops1k0ildetg9Wo4cgTOPNMtIrlNKSilZiqljiilNrq0/VcptVUptV4p9Y1SKtRl2cNKqZ1KqW1KqTHukstgMBjqDbalEJiJbQQAMnzkE0N0tHKuO3QoEb/9BiNHyndvUwrALOD8Em3zgR5a617AduBhAKVUHHA50N3a5nWllK8bZTMYDAbPY1sK/hnk58Px49Ksk5I5UhRZ3Jn8/ffsvv56OHFCtrPmY6ht3KYUtNaLgbQSbfO01nbaxUqglfV5PPCp1jpXa70H2AkMdJdsBoPBUC8ICgIgyk9ulfYQUvqhE+TpAFq0cFlXKQ6NHw9NmsDgweDrnudmT4akXgfYnpJYREnYJFptpVBK3QTcBBAdHU1CQkK1BcjKyqrR9vUF04/6helH/aM+92WYvz9FR7cC45g37w8SE48TfrAQgNTUzSQkHHGsm6UUa59+mrywME66qT8eUQpKqUeBAuAju6mM1cqckVRr/RbwFkD//v31iBEjqi1HQkICNdm+vmD6Ub8w/ah/1Ou+hIbSPaIIgNat+zJiBPyaLRbEyJFxjBjhHCZKSEig9913u1WcOlcKSqnJwEXAKK0dbpVEoLXLaq2AQ3Utm8FgMNQ5ISFE5sntLiUFyMkhOS8McF+CWkXUaUiqUup84EFgnNb6pMui2cDlSqlApVR7oBPwe13KZjAYDB4hLIyo7P2A+BT+++883mMy4Bml4DZLQSn1CTACiFRKJQKPI9FGgcB8pRTASq31LVrrTUqpz4HNyLDSbVrrQnfJZjAYDPWGsDCaHjtMYCDs3QszZgRRwFh8fYqIiKj7VDK3KQWt9RVlNL9TwfpTganuksdgMBjqJWFhqL17adMGPv8cCgrExRoRnI+PT2Cdi2Mymg0Gg8GThIXBsWNMnFi8HHZqZkD527gRoxQMBoPBk1hKYfI1EncTGy7u1sLCsoIy3Y9RCgaDweBJwsKgoIDOsSe4/3548ZIlAJzRzo3Tq1WAUQoGg8HgScIk/JRjx3juOZjYYQ1b6MryX41SMBgMhtMPF6UAQHo6XRvto3mbRh4Rx8y8ZjAYDJ7EVSlMmABffw0xMR4Tx1gKBoPB4ElCQ+V93z5RCK5tHsAoBYPBYPAktqWwcKGzzcdzt2ajFAwGg8GT2Erhl1+cbZs3e0YWjFIwGAwGzxIcDErBwYPOYke6zCLRdYJxNBsMBoMn8fGRiXNOnIAhQ2D4cOjZ02PiGKVgMBgMnmbqVNi0CW6+Gfr186goRikYDAaDp7nzTk9L4MD4FAwGg8HgwCgFg8FgMDgwSsFgMBgMDoxSMBgMBoMDoxQMBoPB4MAoBYPBYDA4MErBYDAYDA6MUjAYDAaDA6U9WGOjpiiljgL7arCLSCCllsTxJKYf9QvTj/pHQ+lLbfWjrdY6qqwFXq0UaopSarXWur+n5agpph/1C9OP+kdD6Utd9MMMHxkMBoPBgVEKBoPBYHBwuiuFtzwtQC1h+lG/MP2ofzSUvri9H6e1T8FgMBgMxTndLQWDwWAwuGCUgsFgMBgcnJZKQSl1vlJqm1Jqp1LqIU/LUxWUUnuVUhuUUmuVUquttnCl1Hyl1A7rPczTcpaFUmqmUuqIUmqjS1u5siulHrbO0Tal1BjPSF2acvrxhFLqoHVe1iqlLnRZVl/70VoptUgptUUptUkpdafV7lXnpIJ+eNU5UUo1Ukr9rpRaZ/XjX1Z73Z4PrfVp9QJ8gV1AByAAWAfEeVquKsi/F4gs0fYc8JD1+SHgWU/LWY7sw4C+wMZTyQ7EWecmEGhvnTNfT/ehgn48AdxXxrr1uR8xQF/rcxCw3ZLXq85JBf3wqnMCKKCZ9dkf+A0YXNfn43S0FAYCO7XWu7XWecCnwHgPy1RTxgPvWZ/fA/7iOVHKR2u9GEgr0Vye7OOBT7XWuVrrPcBO5Nx5nHL6UR71uR+HtdZ/WJ8zgS1ALF52TiroR3nU135orXWW9dXfemnq+HycjkohFjjg8j2Riv9A9Q0NzFNKrVFK3WS1RWutD4NcIEBzj0lXdcqT3RvP0+1KqfXW8JJt4ntFP5RS7YA+yNOp156TEv0ALzsnSilfpdRa4AgwX2td5+fjdFQKqow2b4rLPUtr3Re4ALhNKTXM0wK5CW87T28AZwC9gcPA81Z7ve+HUqoZ8BVwl9b6eEWrltFWb/pSRj+87pxorQu11r2BVsBApVSPClZ3Sz9OR6WQCLR2+d4KOOQhWaqM1vqQ9X4E+AYxF5OVUjEA1vsRz0lYZcqT3avOk9Y62bqgi4AZOM34et0PpZQ/ciP9SGv9tdXsdeekrH546zkB0FqnAwnA+dTx+TgdlcIqoJNSqr1SKgC4HJjtYZkqhVKqqVIqyP4MjAY2IvJPtlabDHznGQmrRXmyzwYuV0oFKqXaA52A3z0gX6WwL1qLS5DzAvW4H0opBbwDbNFav+CyyKvOSXn98LZzopSKUkqFWp8bA+cCW6nr8+Fpj7snXsCFSITCLuBRT8tTBbk7INEG64BNtuxABLAA2GG9h3ta1nLk/wQx4/ORp5zrK5IdeNQ6R9uACzwt/yn68QGwAVhvXawxXtCPs5HhhvXAWut1obedkwr64VXnBOgF/GnJuxF4zGqv0/NhylwYDAaDwcHpOHxkMBgMhnIwSsFgMBgMDoxSMBgMBoMDoxQMBoPB4MAoBYPBYDA4MErBYKgESqkIl2qbSS7VN7OUUq97Wj6DobYwIakGQxVRSj0BZGmtp3laFoOhtjGWgsFQA5RSI5RSP1ifn1BKvaeUmqdk3otLlVLPKZn/Yq5VigGlVD+l1K9WUcOfS2TeGgwexSgFg6F2OQMYi5Q1/hBYpLXuCWQDYy3F8Apwmda6HzATmOopYQ2Gkvh5WgCDoYExR2udr5TagEzoNNdq3wC0A7oAPYD5UrIHX6RkhsFQLzBKwWCoXXIBtNZFSql87XTaFSHXmwI2aa2HeEpAg6EizPCRwVC3bAOilFJDQEo+K6W6e1gmg8GBUQoGQx2iZQrYy4BnlVLrkIqeZ3pUKIPBBROSajAYDAYHxlIwGAwGgwOjFAwGg8HgwCgFg8FgMDgwSsFgMBgMDoxSMBgMBoMDoxQMBoPB4MAoBYPBYDA4+H9ZmdzGwWU/ewAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_test, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_test, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('LSTM test Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LSTM模型的均方误差是: 9.653839\n",
      "LSTM模型的均方根误差是: 3.107063\n",
      "LSTM模型的平均绝对误差是: 2.518555\n",
      "LSTM模型的R-squared是: 0.885586\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
    "import math\n",
    "##########evaluate##############\n",
    "# calculate MSE 均方误差 ---> E[(预测值-真实值)^2] (预测值减真实值求平方后求均值)\n",
    "mse = mean_squared_error(predicted_stock_test, real_price_test)\n",
    "# calculate RMSE 均方根误差--->sqrt[MSE]    (对均方误差开方)\n",
    "rmse = math.sqrt( mean_squared_error(predicted_stock_test, real_price_test))\n",
    "# calculate MAE 平均绝对误差----->E[|预测值-真实值|](预测值减真实值求绝对值后求均值）\n",
    "mae = mean_absolute_error(predicted_stock_test, real_price_test)\n",
    "\n",
    "r2=r2_score(predicted_stock_test, real_price_test)\n",
    "\n",
    "print('LSTM模型的均方误差是: %.6f' % mse)\n",
    "print('LSTM模型的均方根误差是: %.6f' % rmse)\n",
    "print('LSTM模型的平均绝对误差是: %.6f' % mae)\n",
    "print('LSTM模型的R-squared是: %.6f' % r2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.layers import Dense, LSTM, Dropout, GRU, Bidirectional"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "#GRU\n",
    "regressorGRU = Sequential()\n",
    "regressorGRU.add(GRU(units=50, return_sequences=True, input_shape=(x_train.shape[1],6)))\n",
    "regressorGRU.add(Dropout(0.2))\n",
    "regressorGRU.add(GRU(units=50, return_sequences=True))\n",
    "regressorGRU.add(Dropout(0.2))\n",
    "regressorGRU.add(GRU(units=50, return_sequences=True))\n",
    "regressorGRU.add(Dropout(0.2))\n",
    "regressorGRU.add(GRU(units=50))\n",
    "regressorGRU.add(Dropout(0.2))\n",
    "regressorGRU.add(Dense(units=1))\n",
    "regressorGRU.compile(optimizer='adam', loss='mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_1\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "gru (GRU)                    (None, 60, 50)            8700      \n",
      "_________________________________________________________________\n",
      "dropout_4 (Dropout)          (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "gru_1 (GRU)                  (None, 60, 50)            15300     \n",
      "_________________________________________________________________\n",
      "dropout_5 (Dropout)          (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "gru_2 (GRU)                  (None, 60, 50)            15300     \n",
      "_________________________________________________________________\n",
      "dropout_6 (Dropout)          (None, 60, 50)            0         \n",
      "_________________________________________________________________\n",
      "gru_3 (GRU)                  (None, 50)                15300     \n",
      "_________________________________________________________________\n",
      "dropout_7 (Dropout)          (None, 50)                0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 1)                 51        \n",
      "=================================================================\n",
      "Total params: 54,651\n",
      "Trainable params: 54,651\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "print(regressorGRU.summary()) # Summarize Model 模型可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\n",
      "\n",
      "               Input   #####     60    6\n",
      "                 GRU   LLLLL -------------------      8700    15.9%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                 GRU   LLLLL -------------------     15300    28.0%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                 GRU   LLLLL -------------------     15300    28.0%\n",
      "                tanh   #####     60   50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60   50\n",
      "                 GRU   LLLLL -------------------     15300    28.0%\n",
      "                tanh   #####          50\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####          50\n",
      "               Dense   XXXXX -------------------        51     0.1%\n",
      "                       #####           1\n"
     ]
    }
   ],
   "source": [
    "from keras_sequential_ascii import keras2ascii\n",
    "keras2ascii(regressorGRU)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('Failed to import pydot. You must `pip install pydot` and install graphviz (https://graphviz.gitlab.io/download/), ', 'for `pydotprint` to work.')\n"
     ]
    }
   ],
   "source": [
    "from keras.utils import plot_model \n",
    "plot_model(regressorGRU, to_file='model.png', show_shapes=True, show_layer_names=True) # plot my model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/200\n",
      "205/205 [==============================] - 4s 17ms/step - loss: 0.0081 - val_loss: 0.0058\n",
      "Epoch 2/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0027 - val_loss: 0.0017\n",
      "Epoch 3/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0023 - val_loss: 0.0019\n",
      "Epoch 4/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0020 - val_loss: 9.6750e-04\n",
      "Epoch 5/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0018 - val_loss: 5.6850e-04\n",
      "Epoch 6/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0018 - val_loss: 6.9000e-04\n",
      "Epoch 7/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0015 - val_loss: 0.0020\n",
      "Epoch 8/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0015 - val_loss: 4.5999e-04\n",
      "Epoch 9/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0015 - val_loss: 0.0011\n",
      "Epoch 10/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0014 - val_loss: 2.8973e-04\n",
      "Epoch 11/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0013 - val_loss: 2.7215e-04\n",
      "Epoch 12/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0012 - val_loss: 2.5342e-04\n",
      "Epoch 13/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0012 - val_loss: 6.5113e-04\n",
      "Epoch 14/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0011 - val_loss: 2.2446e-04\n",
      "Epoch 15/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0011 - val_loss: 2.1347e-04\n",
      "Epoch 16/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0011 - val_loss: 3.5704e-04\n",
      "Epoch 17/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0011 - val_loss: 1.9838e-04\n",
      "Epoch 18/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0011 - val_loss: 6.8904e-04\n",
      "Epoch 19/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0010 - val_loss: 2.2515e-04\n",
      "Epoch 20/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 0.0010 - val_loss: 3.5558e-04\n",
      "Epoch 21/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 9.5765e-04 - val_loss: 9.8916e-04\n",
      "Epoch 22/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 8.8794e-04 - val_loss: 0.0013\n",
      "Epoch 23/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 8.5645e-04 - val_loss: 4.0360e-04\n",
      "Epoch 24/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 9.6583e-04 - val_loss: 1.6094e-04\n",
      "Epoch 25/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 8.5509e-04 - val_loss: 6.8316e-04\n",
      "Epoch 26/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 8.4324e-04 - val_loss: 1.5201e-04\n",
      "Epoch 27/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 8.7388e-04 - val_loss: 3.2417e-04\n",
      "Epoch 28/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.4018e-04 - val_loss: 1.5843e-04\n",
      "Epoch 29/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 8.7352e-04 - val_loss: 1.9829e-04\n",
      "Epoch 30/200\n",
      "205/205 [==============================] - 3s 12ms/step - loss: 8.4110e-04 - val_loss: 3.7893e-04\n",
      "Epoch 31/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.7561e-04 - val_loss: 2.2890e-04\n",
      "Epoch 32/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.7063e-04 - val_loss: 0.0011\n",
      "Epoch 33/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.9293e-04 - val_loss: 7.1650e-04\n",
      "Epoch 34/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.9619e-04 - val_loss: 0.0010\n",
      "Epoch 35/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.8198e-04 - val_loss: 1.2607e-04\n",
      "Epoch 36/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.8178e-04 - val_loss: 2.3488e-04\n",
      "Epoch 37/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.2131e-04 - val_loss: 2.0728e-04\n",
      "Epoch 38/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.2766e-04 - val_loss: 2.8303e-04\n",
      "Epoch 39/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.2173e-04 - val_loss: 5.0983e-04\n",
      "Epoch 40/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.4776e-04 - val_loss: 1.7682e-04\n",
      "Epoch 41/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.5887e-04 - val_loss: 1.0659e-04\n",
      "Epoch 42/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.6443e-04 - val_loss: 1.2831e-04\n",
      "Epoch 43/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.8058e-04 - val_loss: 1.3813e-04\n",
      "Epoch 44/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.7284e-04 - val_loss: 9.4730e-05\n",
      "Epoch 45/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.8415e-04 - val_loss: 1.5988e-04\n",
      "Epoch 46/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.6853e-04 - val_loss: 1.9587e-04\n",
      "Epoch 47/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.8796e-04 - val_loss: 2.7968e-04\n",
      "Epoch 48/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.6041e-04 - val_loss: 3.2285e-04\n",
      "Epoch 49/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.6483e-04 - val_loss: 2.6404e-04\n",
      "Epoch 50/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.7070e-04 - val_loss: 1.3025e-04\n",
      "Epoch 51/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.5271e-04 - val_loss: 7.0231e-04\n",
      "Epoch 52/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.2701e-04 - val_loss: 1.9781e-04\n",
      "Epoch 53/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.5449e-04 - val_loss: 4.4114e-04\n",
      "Epoch 54/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 7.0876e-04 - val_loss: 1.5016e-04\n",
      "Epoch 55/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.3343e-04 - val_loss: 8.2781e-05\n",
      "Epoch 56/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.1234e-04 - val_loss: 7.9054e-05\n",
      "Epoch 57/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.5946e-04 - val_loss: 1.2336e-04\n",
      "Epoch 58/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.7027e-04 - val_loss: 8.6502e-04\n",
      "Epoch 59/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.6310e-04 - val_loss: 2.2967e-04\n",
      "Epoch 60/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.8727e-04 - val_loss: 9.7409e-05\n",
      "Epoch 61/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.3557e-04 - val_loss: 3.5476e-04\n",
      "Epoch 62/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.9721e-04 - val_loss: 3.6308e-04\n",
      "Epoch 63/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.0054e-04 - val_loss: 8.7246e-05\n",
      "Epoch 64/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.0824e-04 - val_loss: 2.2475e-04\n",
      "Epoch 65/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.4451e-04 - val_loss: 2.0399e-04\n",
      "Epoch 66/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.0302e-04 - val_loss: 2.2666e-04\n",
      "Epoch 67/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.1833e-04 - val_loss: 1.4251e-04\n",
      "Epoch 68/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.5724e-04 - val_loss: 1.4934e-04\n",
      "Epoch 69/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.6101e-04 - val_loss: 1.9176e-04\n",
      "Epoch 70/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.1237e-04 - val_loss: 7.9645e-05\n",
      "Epoch 71/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.4089e-04 - val_loss: 1.0064e-04\n",
      "Epoch 72/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.1733e-04 - val_loss: 1.0222e-04\n",
      "Epoch 73/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.9432e-04 - val_loss: 6.6968e-05\n",
      "Epoch 74/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.0924e-04 - val_loss: 7.0657e-05\n",
      "Epoch 75/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.9478e-04 - val_loss: 8.6356e-05\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 76/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.0225e-04 - val_loss: 2.1741e-04\n",
      "Epoch 77/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.8411e-04 - val_loss: 7.0784e-05\n",
      "Epoch 78/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.1102e-04 - val_loss: 1.8366e-04\n",
      "Epoch 79/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.8680e-04 - val_loss: 1.2933e-04\n",
      "Epoch 80/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.1835e-04 - val_loss: 6.6306e-05\n",
      "Epoch 81/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.5408e-04 - val_loss: 1.3499e-04\n",
      "Epoch 82/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.5011e-04 - val_loss: 4.4497e-04\n",
      "Epoch 83/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.0797e-04 - val_loss: 2.6264e-04\n",
      "Epoch 84/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.0649e-04 - val_loss: 9.4510e-05\n",
      "Epoch 85/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.6543e-04 - val_loss: 8.5870e-05\n",
      "Epoch 86/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.1662e-04 - val_loss: 1.8031e-04\n",
      "Epoch 87/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 6.1133e-04 - val_loss: 1.0363e-04\n",
      "Epoch 88/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.6321e-04 - val_loss: 1.2762e-04\n",
      "Epoch 89/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.7252e-04 - val_loss: 1.7640e-04\n",
      "Epoch 90/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.8717e-04 - val_loss: 2.0676e-04\n",
      "Epoch 91/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.8596e-04 - val_loss: 2.8256e-04\n",
      "Epoch 92/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.9977e-04 - val_loss: 6.0474e-04\n",
      "Epoch 93/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.5582e-04 - val_loss: 7.7507e-05\n",
      "Epoch 94/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.6775e-04 - val_loss: 2.0815e-04\n",
      "Epoch 95/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.7226e-04 - val_loss: 1.4699e-04\n",
      "Epoch 96/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.8789e-04 - val_loss: 3.8067e-04\n",
      "Epoch 97/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.9449e-04 - val_loss: 1.1070e-04\n",
      "Epoch 98/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.7860e-04 - val_loss: 1.9754e-04\n",
      "Epoch 99/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.8532e-04 - val_loss: 1.1812e-04\n",
      "Epoch 100/200\n",
      "205/205 [==============================] - 2s 12ms/step - loss: 5.7382e-04 - val_loss: 1.0711e-04\n",
      "Epoch 00100: early stopping\n"
     ]
    }
   ],
   "source": [
    "history=regressorGRU.fit(x_train, y_train, epochs=200, batch_size=32,validation_data=(x_val, y_val),callbacks=[mc, earlystop])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ALOAFOBxVV0iIhcG9k8FZgLHA8uBPOCcaGkDhz4fuE9EagP5BKqjEkLduvZdUAAV1IU6jhMHcXoGu4LQKcZvuOEGDj/8cF555RUyMzMr9MJSU1NLfqekpFBYWBhXHNWytfOxiZRGRJgwYQInnHACM2fOZOjQocyePZtDDz2UuXPn8sYbb3DWWWdx1VVXMXbs2Eqfs7IktDRU1ZmYOISGTQ35rcD4eNMGwj8ABlRtTisgVDjq198lp3QcZ9eRnZ1N+/btAXjyySer/Pg9evRgxYoVZGZm0rlzZ1544YWYaQ499FCeffZZbrjhBjIyMmjZsiWNGzfmhx9+oFevXvTq1YuPP/6Y7777jnr16tG+fXvOP/98tmzZwsKFC/d84djjCRUOx3FqHFdffTVnn30299xzD0cccUSVH79evXo8+OCDHHvssbRs2ZLBg2OPV540aRLnnHMOvXv3pn79+vz3v/8F4N577y1pm+nZsyfHHXcc06ZN484776ROnTo0bNiQp556qsptiIiq1vjPgAEDtDLMmTPHfjzyiCqorllTqfR7KiV2JxHJaLPqrrH7m2++Sfg5KsPmzZur5bw5OTmqqlpcXKwXXXSR3nPPPbv0/PHaHel+AQs0Qpnqc1VFwz0Ox3F2kkceeYS+ffuy//77k52dzZ///OfqztJO41VV0XDhcBxnJ7n88su5/PLLqzsbVYp7HNFw4XAcxymHC0c0XDgcx3HK4cIRDRcOx3GccrhwRMOFw3EcpxwuHNFw4XCcPZbhw4cza9assLB7772Xiy++OGqaBQsWAHD88cezadOmcnEmTZrEXXfdFfXcr776Kt98803J9t///ndmz55didxHZneZft2FIxouHI6zxzJmzBimTZsWFjZt2rS45osCmDlzJk2bNt2hc5cVjptuuomjjio3ifceiwtHNFw4HGeP5ZRTTuH1119n27ZtAKxatYq1a9dy8MEHc9FFFzFw4ED2339/brzxxojpO3fuzK+//grALbfcwr777stRRx3F0qVLS+I88sgjDBo0iD59+vCHP/yBvLw8PvroI2bMmMFVV11F3759+eGHHxg3bhwvvfQSAO+++y79+vWjV69enHvuuSX569y5MzfeeCP9+/enV69efPfdd1Ht27hxIyNHjqR3794MHTqUxYsXA/D++++XLFjVr18/cnJyWLduHYceeih9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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画损失曲线图\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "epochs = range(1, len(loss) + 1)\n",
    "plt.title('GRU Loss curve')\n",
    "plt.plot(epochs, loss, 'red', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'blue', label='Validation loss')\n",
    "plt.grid(True)\n",
    "plt.xlabel('epoch')\n",
    "plt.ylabel('loss')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "sc_one = MinMaxScaler(feature_range = (0, 1))\n",
    "sc_one.fit_transform(all_data.iloc[:, 1:2])\n",
    "predicted_stock_train = regressorGRU.predict(x_train)\n",
    "predicted_stock_train = sc_one.inverse_transform(predicted_stock_train)\n",
    "predicted_stock_test = regressorGRU.predict(x_test)\n",
    "predicted_stock_test = sc_one.inverse_transform(predicted_stock_test)\n",
    "real_price_train=sc_one.inverse_transform(np.reshape(y_train,(-1,1)))\n",
    "real_price_test=sc_one.inverse_transform(np.reshape(y_test,(-1,1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_train, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_train, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('GRU train Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_test, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_test, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('GRU test Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "GRU模型的均方误差是: 5.316634\n",
      "GRU模型的均方根误差是: 2.305783\n",
      "GRU模型的平均绝对误差是: 1.557126\n",
      "GRU模型的R-squared是: 0.939961\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
    "import math\n",
    "##########evaluate##############\n",
    "# calculate MSE 均方误差 ---> E[(预测值-真实值)^2] (预测值减真实值求平方后求均值)\n",
    "mse = mean_squared_error(predicted_stock_test, real_price_test)\n",
    "# calculate RMSE 均方根误差--->sqrt[MSE]    (对均方误差开方)\n",
    "rmse = math.sqrt( mean_squared_error(predicted_stock_test, real_price_test))\n",
    "# calculate MAE 平均绝对误差----->E[|预测值-真实值|](预测值减真实值求绝对值后求均值）\n",
    "mae = mean_absolute_error(predicted_stock_test, real_price_test)\n",
    "\n",
    "r2=r2_score(predicted_stock_test, real_price_test)\n",
    "\n",
    "print('GRU模型的均方误差是: %.6f' % mse)\n",
    "print('GRU模型的均方根误差是: %.6f' % rmse)\n",
    "print('GRU模型的平均绝对误差是: %.6f' % mae)\n",
    "print('GRU模型的R-squared是: %.6f' % r2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "# BiLSTM\n",
    "regressorBiLSTM = Sequential()\n",
    "# firt LSTM layer\n",
    "regressorBiLSTM.add(Bidirectional(LSTM(units=50, return_sequences=True), input_shape=(x_train.shape[1],6), merge_mode='concat'))\n",
    "regressorBiLSTM.add(Dropout(0.2))\n",
    "# second LSTM layer\n",
    "regressorBiLSTM.add(Bidirectional(LSTM(units=50, return_sequences=True)))\n",
    "regressorBiLSTM.add(Dropout(0.2))\n",
    "# third LSTM layer\n",
    "regressorBiLSTM.add(Bidirectional(LSTM(units=50, return_sequences=True)))\n",
    "regressorBiLSTM.add(Dropout(0.2))\n",
    "# fourth LSTM layer\n",
    "regressorBiLSTM.add(Bidirectional(LSTM(units=50)))\n",
    "regressorBiLSTM.add(Dropout(0.2))\n",
    "# output layer\n",
    "regressorBiLSTM.add(Dense(units=1))\n",
    "# compile the RNN\n",
    "regressorBiLSTM.compile(optimizer='adam', loss='mean_squared_error')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_2\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "bidirectional (Bidirectional (None, 60, 100)           22800     \n",
      "_________________________________________________________________\n",
      "dropout_8 (Dropout)          (None, 60, 100)           0         \n",
      "_________________________________________________________________\n",
      "bidirectional_1 (Bidirection (None, 60, 100)           60400     \n",
      "_________________________________________________________________\n",
      "dropout_9 (Dropout)          (None, 60, 100)           0         \n",
      "_________________________________________________________________\n",
      "bidirectional_2 (Bidirection (None, 60, 100)           60400     \n",
      "_________________________________________________________________\n",
      "dropout_10 (Dropout)         (None, 60, 100)           0         \n",
      "_________________________________________________________________\n",
      "bidirectional_3 (Bidirection (None, 100)               60400     \n",
      "_________________________________________________________________\n",
      "dropout_11 (Dropout)         (None, 100)               0         \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 101       \n",
      "=================================================================\n",
      "Total params: 204,101\n",
      "Trainable params: 204,101\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "print(regressorBiLSTM.summary()) # Summarize Model 模型可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)\n",
      "\n",
      "               Input   #####     60    6\n",
      "       Bidirectional   ????? -------------------     22800    11.2%\n",
      "                       #####     60  100\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60  100\n",
      "       Bidirectional   ????? -------------------     60400    29.6%\n",
      "                       #####     60  100\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60  100\n",
      "       Bidirectional   ????? -------------------     60400    29.6%\n",
      "                       #####     60  100\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####     60  100\n",
      "       Bidirectional   ????? -------------------     60400    29.6%\n",
      "                       #####         100\n",
      "             Dropout    | || -------------------         0     0.0%\n",
      "                       #####         100\n",
      "               Dense   XXXXX -------------------       101     0.0%\n",
      "                       #####           1\n"
     ]
    }
   ],
   "source": [
    "from keras_sequential_ascii import keras2ascii\n",
    "keras2ascii(regressorBiLSTM)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/200\n",
      "205/205 [==============================] - 8s 38ms/step - loss: 0.0046 - val_loss: 9.0049e-04\n",
      "Epoch 2/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 0.0020 - val_loss: 5.0071e-04\n",
      "Epoch 3/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 0.0016 - val_loss: 0.0010\n",
      "Epoch 4/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 0.0014 - val_loss: 4.2354e-04\n",
      "Epoch 5/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 0.0013 - val_loss: 4.2634e-04\n",
      "Epoch 6/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 0.0012 - val_loss: 2.9994e-04\n",
      "Epoch 7/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 0.0015 - val_loss: 0.0024\n",
      "Epoch 8/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 0.0011 - val_loss: 2.5135e-04\n",
      "Epoch 9/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 0.0010 - val_loss: 9.0409e-04\n",
      "Epoch 10/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 9.5034e-04 - val_loss: 6.1002e-04\n",
      "Epoch 11/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 9.0623e-04 - val_loss: 2.4875e-04\n",
      "Epoch 12/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 8.4903e-04 - val_loss: 9.0848e-04\n",
      "Epoch 13/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 9.1192e-04 - val_loss: 2.3833e-04\n",
      "Epoch 14/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 9.1124e-04 - val_loss: 2.3751e-04\n",
      "Epoch 15/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 7.9375e-04 - val_loss: 6.6830e-04\n",
      "Epoch 16/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 7.7602e-04 - val_loss: 7.6849e-04\n",
      "Epoch 17/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 7.4997e-04 - val_loss: 1.7264e-04\n",
      "Epoch 18/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 7.3389e-04 - val_loss: 2.3763e-04\n",
      "Epoch 19/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 7.1425e-04 - val_loss: 1.6983e-04\n",
      "Epoch 20/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 7.1985e-04 - val_loss: 4.6874e-04\n",
      "Epoch 21/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 6.9500e-04 - val_loss: 1.6401e-04\n",
      "Epoch 22/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 6.3881e-04 - val_loss: 2.5402e-04\n",
      "Epoch 23/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 6.6537e-04 - val_loss: 5.0742e-04\n",
      "Epoch 24/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 6.6866e-04 - val_loss: 3.2342e-04\n",
      "Epoch 25/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 6.8255e-04 - val_loss: 4.3763e-04\n",
      "Epoch 26/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 6.2819e-04 - val_loss: 3.0542e-04\n",
      "Epoch 27/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 6.4587e-04 - val_loss: 4.9903e-04\n",
      "Epoch 28/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 5.9597e-04 - val_loss: 6.9056e-04\n",
      "Epoch 29/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 6.1304e-04 - val_loss: 1.2360e-04\n",
      "Epoch 30/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 6.1796e-04 - val_loss: 6.2559e-04\n",
      "Epoch 31/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 6.4679e-04 - val_loss: 5.9558e-04\n",
      "Epoch 32/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 5.6067e-04 - val_loss: 1.3117e-04\n",
      "Epoch 33/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 5.8348e-04 - val_loss: 7.9486e-04\n",
      "Epoch 34/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 5.4267e-04 - val_loss: 7.5149e-04\n",
      "Epoch 35/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 5.3362e-04 - val_loss: 1.5766e-04\n",
      "Epoch 36/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 5.6310e-04 - val_loss: 1.5155e-04\n",
      "Epoch 37/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 5.8004e-04 - val_loss: 1.8920e-04\n",
      "Epoch 38/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 5.6547e-04 - val_loss: 2.4502e-04\n",
      "Epoch 39/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 5.6639e-04 - val_loss: 1.7822e-04\n",
      "Epoch 40/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 5.7226e-04 - val_loss: 1.5550e-04\n",
      "Epoch 41/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 5.3063e-04 - val_loss: 1.2335e-04\n",
      "Epoch 42/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 5.0006e-04 - val_loss: 1.1978e-04\n",
      "Epoch 43/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 5.3700e-04 - val_loss: 5.0701e-04\n",
      "Epoch 44/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.9747e-04 - val_loss: 2.9885e-04\n",
      "Epoch 45/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.9259e-04 - val_loss: 1.2083e-04\n",
      "Epoch 46/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 5.1790e-04 - val_loss: 0.0020\n",
      "Epoch 47/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.7597e-04 - val_loss: 1.5596e-04\n",
      "Epoch 48/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 5.0710e-04 - val_loss: 1.1487e-04\n",
      "Epoch 49/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.9623e-04 - val_loss: 1.0910e-04\n",
      "Epoch 50/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.5580e-04 - val_loss: 3.4924e-04\n",
      "Epoch 51/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 5.0714e-04 - val_loss: 2.1002e-04\n",
      "Epoch 52/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.6722e-04 - val_loss: 1.8700e-04\n",
      "Epoch 53/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.4190e-04 - val_loss: 5.6325e-04\n",
      "Epoch 54/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.9163e-04 - val_loss: 2.2968e-04\n",
      "Epoch 55/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.7172e-04 - val_loss: 9.1961e-05\n",
      "Epoch 56/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.9467e-04 - val_loss: 8.5071e-05\n",
      "Epoch 57/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.6887e-04 - val_loss: 9.0256e-05\n",
      "Epoch 58/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.8727e-04 - val_loss: 3.9886e-04\n",
      "Epoch 59/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.5296e-04 - val_loss: 6.8134e-04\n",
      "Epoch 60/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.7169e-04 - val_loss: 1.4493e-04\n",
      "Epoch 61/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.5088e-04 - val_loss: 0.0016\n",
      "Epoch 62/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.3410e-04 - val_loss: 5.2904e-04\n",
      "Epoch 63/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.2936e-04 - val_loss: 0.0026\n",
      "Epoch 64/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.6581e-04 - val_loss: 1.4716e-04\n",
      "Epoch 65/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.3544e-04 - val_loss: 2.5903e-04\n",
      "Epoch 66/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.2191e-04 - val_loss: 5.1338e-04\n",
      "Epoch 67/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.5656e-04 - val_loss: 2.3502e-04\n",
      "Epoch 68/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.2810e-04 - val_loss: 5.4408e-04\n",
      "Epoch 69/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.6672e-04 - val_loss: 1.8680e-04\n",
      "Epoch 70/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.4313e-04 - val_loss: 8.2713e-05\n",
      "Epoch 71/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.1126e-04 - val_loss: 1.5705e-04\n",
      "Epoch 72/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.0464e-04 - val_loss: 4.5988e-04\n",
      "Epoch 73/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.9521e-04 - val_loss: 3.5836e-04\n",
      "Epoch 74/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.9420e-04 - val_loss: 3.6369e-04\n",
      "Epoch 75/200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "205/205 [==============================] - 5s 25ms/step - loss: 4.0541e-04 - val_loss: 2.0850e-04\n",
      "Epoch 76/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.3859e-04 - val_loss: 2.9656e-04\n",
      "Epoch 77/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.9677e-04 - val_loss: 3.1495e-04\n",
      "Epoch 78/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.2225e-04 - val_loss: 2.3008e-04\n",
      "Epoch 79/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.0010e-04 - val_loss: 0.0010\n",
      "Epoch 80/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.2115e-04 - val_loss: 3.2908e-04\n",
      "Epoch 81/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 3.7430e-04 - val_loss: 9.9743e-05\n",
      "Epoch 82/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.1765e-04 - val_loss: 2.7567e-04\n",
      "Epoch 83/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.0524e-04 - val_loss: 1.0736e-04\n",
      "Epoch 84/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.1775e-04 - val_loss: 1.4945e-04\n",
      "Epoch 85/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.4380e-04 - val_loss: 0.0011\n",
      "Epoch 86/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.6867e-04 - val_loss: 7.1735e-05\n",
      "Epoch 87/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.8685e-04 - val_loss: 1.1663e-04\n",
      "Epoch 88/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.2873e-04 - val_loss: 5.2770e-04\n",
      "Epoch 89/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.1841e-04 - val_loss: 1.0165e-04\n",
      "Epoch 90/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 3.7501e-04 - val_loss: 3.1247e-04\n",
      "Epoch 91/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.0003e-04 - val_loss: 1.5895e-04\n",
      "Epoch 92/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.7554e-04 - val_loss: 2.1101e-04\n",
      "Epoch 93/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 4.3501e-04 - val_loss: 1.1117e-04\n",
      "Epoch 94/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 3.7981e-04 - val_loss: 3.0908e-04\n",
      "Epoch 95/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.5376e-04 - val_loss: 1.6834e-04\n",
      "Epoch 96/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.9169e-04 - val_loss: 4.2426e-04\n",
      "Epoch 97/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.1766e-04 - val_loss: 0.0012\n",
      "Epoch 98/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 3.8661e-04 - val_loss: 7.1279e-04\n",
      "Epoch 99/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 3.5625e-04 - val_loss: 2.8403e-04\n",
      "Epoch 100/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.8216e-04 - val_loss: 1.8805e-04\n",
      "Epoch 101/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 4.1927e-04 - val_loss: 1.4226e-04\n",
      "Epoch 102/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 3.8354e-04 - val_loss: 8.0372e-05\n",
      "Epoch 103/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 3.7745e-04 - val_loss: 2.3579e-04\n",
      "Epoch 104/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.8866e-04 - val_loss: 1.5874e-04\n",
      "Epoch 105/200\n",
      "205/205 [==============================] - 5s 25ms/step - loss: 3.6977e-04 - val_loss: 1.3834e-04\n",
      "Epoch 106/200\n",
      "205/205 [==============================] - 5s 24ms/step - loss: 3.8214e-04 - val_loss: 1.3947e-04\n",
      "Epoch 00106: early stopping\n"
     ]
    }
   ],
   "source": [
    "# fit to the training set\n",
    "history=regressorBiLSTM.fit(x_train, y_train, epochs=200, batch_size=32,validation_data=(x_val, y_val),callbacks=[mc, earlystop])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#画损失曲线图\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "epochs = range(1, len(loss) + 1)\n",
    "plt.title('BiLSTM Loss curve')\n",
    "plt.plot(epochs, loss, 'red', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'blue', label='Validation loss')\n",
    "plt.grid(True)\n",
    "plt.xlabel('epoch')\n",
    "plt.ylabel('loss')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "sc_one = MinMaxScaler(feature_range = (0, 1))\n",
    "sc_one.fit_transform(all_data.iloc[:, 1:2])\n",
    "predicted_stock_train = regressorBiLSTM.predict(x_train)\n",
    "predicted_stock_train = sc_one.inverse_transform(predicted_stock_train)\n",
    "predicted_stock_test = regressorBiLSTM.predict(x_test)\n",
    "predicted_stock_test = sc_one.inverse_transform(predicted_stock_test)\n",
    "real_price_train=sc_one.inverse_transform(np.reshape(y_train,(-1,1)))\n",
    "real_price_test=sc_one.inverse_transform(np.reshape(y_test,(-1,1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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nrPOOqtQdXTo0IFFixblWhH9xRdfMGHCBESErKwsnnrqKQYPHszkyZO58MILqVevXqHqyczMZOLEifz99995+naaPHkyTzzxBPXr1+f06dPceeedjBo1Kle+2bNns3nzZsfah6KSmpqa63eUk6SkpHzzBCOhqht8q73VG28APzrCpytWYvPDD9PGJU/b6M0sXLiVPiR7LGPjv/9y2IO+UP7MAd+vUwBigL+AK+xwfI70E/b7BOA6l/iPgSvzKjtY1ylUrFjRcTxy5Ejz+uuvu6VnZGQUuKwbb7zRfPPNN25x3nQ//fTT5r///W8hlFo0adLEHDlyxC1uz549pnnz5iY+Pt4YY0xiYqLZuXOnMcaY888/36xcubLQ9SQkJJhJkyaZO++8M898rnkOHTpkatasaQ4ePOiWJz09vdD1e0PXKQQnPtV++eWmAXscSw5e4lFjwGSBCSfdgDFXNVpujHFftuD6+n3wS8ZkZXnXffq0McnJvruGYkCg1imISATwHTDZGDPdjj4kIvXs9HpA9vLBvUAjl9MbAvt9qc8fnHfeeWzfvp2FCxfSp08fRo4cSceOHcnMzOThhx92rER+//33ActI33XXXbRr147Bgwdz2GV15QUXXMCqVasAmDt3Ll27diU2Npa+ffsSFxfHxIkTefPNN+ncuTNLlizx6p762LFj9O/fny5dunDbbbd59JF0+PBhKlWqRExMDAAxMTE0a9aMb7/9llWrVnHttdfSuXNnUlJSmD9/Pl26dKFjx47cfPPNDkd/K1eupFevXsTGxtKjR49crZuffvqJnj175rmxT+3atWnRogX//vsvo0aN4oEHHqBPnz6MGzfObROiQ4cOcfnllxMbG0tsbCzLli0D4Msvv6RHjx507tyZ2267jczMzCJ9j0opY8YMkohxBE9jrUM4RQUy7Q6UjD15334e+6kX3HOP9wwXXQRefIIFMz7rPhLLC9rHwCZjzBsuST8CNwKv2O8/uMR/JSJvAPWBlsCK4mjIx3M2mZnRvvScTUZGBnPmzGHgwIEArFixgvXr19OsWTM++OADqlSpwsqVK0lLS+Occ86hf//+rF69mi1btrBu3ToOHTpEu3btuPnmm93KPXr0KLfeeiuLFy+mWbNmHD9+nOrVqzN27FhiYmJ46KGHABg5cqRH99TPPvss5557Lk899RQ//fQTH3zwQS7tsbGx1KlTh2bNmtG3b1+uuOIKhgwZwlVXXcU777zDa6+9xplnnklqaiqjRo1i/vz5tGrVihtuuIH33nuPO+64g+HDhzN16lS6d+9OQkKC2w15xowZvPHGG8yePZtq1arlqj+bnTt3snPnTs44w5oJku3lNTw8nE8//dSR75577uH8889nxowZZGZmkpSUxKZNm5g6dSpLly4lIiKCO+64g8mTJ+frElwp/RjcB48X0xuA4Ux1xGVQDj77DOs2lZv2bIB33oEc+5E4C11svf/6q2Ugdu4MiXEIX44pnANcD6wTkTV23GNYxmCaiIwGdgPDAIwxG0RkGrARa+bSncaYkHysy3adDVZLYfTo0SxbtowePXo43GLPmzePf/75h2+//RawnOJt27aNxYsXc8011xAeHk79+vW58MILc5W/cuVKevfu7SjL1fW1K97cUy9evJjp062G2+DBgz3elMPDw5k7dy4rV65k/vz53H///fz111+5PLhu2bKFZs2a0apVKwBuvPFGJkyYQN++falXrx7du3cHoHLlyo6WwoIFC1i1ahXz5s2jcuXKeGLq1Kn8/vvvREZG8v777zuucdiwYYR7sOS//fYbn3/+uUN7lSpV+OKLL/jrr78cGlJSUqhdu3auc5Wyx+arnsR86+woWU8HPuBWfuISR1wG5WDUKCpwFafI/cTfgdzu6h2cPu08Hj/e8rP00EMwcyZccon384IAnxkFY8zvgLc5W329nPMi8GJJacjviT4xMcWnrrNz4upe2hjD22+/zYAB7ssxZs+e7dVlteu5+eWBvN1TF+R8EaFHjx706NGDfv36cdNNN+UyCp66nvLT2Lx5c3bu3MnWrVs588wzPeYZPny4mxfVbLy56Pam4cYbb+Tll18u8DlKKUcERozgnT9GuEUfpg634d5izrBvjzU45tEo/MaF3M57SFgYbNkCLVs6E199lcPUYi8N6ZqZaRkEgMceg+RkGD68ZK+rBNEVzQFiwIABvPfee46dyLZu3UpycjK9e/dmypQpZGZmcuDAAccWmq706NGDRYsWsWvXLsDpjjqn62xv7qldXWrPmTOHEydO5Kpj//79/P33327nNmnSJFc9bdq0IS4uju3btwPWjKXzzz+fNm3asH//flauXAlYLr6zXXU3adKE6dOnc8MNN7Bhw4bCfnQe6du3L++99x5g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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_train, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_train, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('BiLSTM train Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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hZAQ6NfP25YYDIZi8EZI6tnAFq31fpd1PwATrYlKooBOyCQhhtrCgQMwYoT8GXwaf39/evXqRffu3Rk3bhzHjh2r0HlmzJjB7bffXmR9YmIiY8eOpWfPnkRHR3PeeTJZ3O7du/n8888rbHe7du1ISSl5uoV27drRo0cPevbsyejRozl06JDb/c4777wKl7um48mQ1C+QjuIuSqn9SqkbrE0TKdh0hDURzFdAHDLR+W0m8qiWMW2avFZT04fBc9StW5e1a9eyceNGGjduzJtvvlml5582bRqjRo1i3bp1xMXF8eyzzwKVF4WysnjxYtatW0e/fv14+umnC2zTWpOfn8/cuXMJCwvzuC3ewGOioLW+QmsdobUO1Fq30lp/aK2frLV+x83+T2mtO2itu2it53nKLoOX+OsveW3Rwrt2GKqUQYMGceCATIu8Y8cOzjnnHPr27cuZZ57Jli1bAPjxxx85/fTT6d27N2effTaJiYklnvPgwYO0atXK8T4mJgaABx98kN9//51evXrx8ssvk5mZyXXXXUePHj3o3bs3ixcvBqQz9t5776VHjx7ExMTw+uuvFzj/yZMnOeecc3j//fdLtGPo0KFs376d3bt3c9pppzF16lT69OnDvn37Cngdn376KTExMfTs2ZOrr74agOTkZC699FL69+9P//79+eOPP8r6kXodn859ZPAhUlPl9fhx79pRm/jXv2Dt2qo9Z69e8MorZdo1Ly+PhQsXcsMN0ghw00038c4779CpUyf++usvpk6dyqJFixgyZAgrVqxAKcUHH3zA888/z4svvljseW+77TYmTJjAG2+8wdlnn811111HZGQkzz77LNOnT+enn2QaZvscGzZsYMuWLYwePZr4+Hg+/vhjdu3axZo1awgICODIkSOOc2dkZDBx4kSuueYarrnmmhLL99NPP9GjRw8Atm7dyscff8xbb71VYJ9Nmzbx1FNP8ccffxAeHu641l133cXdd9/NkCFD2Lt3L2PGjPGZcRJGFAzVQ1qavJ444V07DJXm5MmT9OrVi927d9O3b19GjRpFRkYGy5cvZ/z48Y79srKyABlbMWHCBA4ePEh2dnapMfNjxoxh586dzJ8/n3nz5tG7d282btxYZL9ly5Zxxx13ANC1a1fatm1LfHw8v/32G7fccgsBAfJ4a9y4sSOM88ILL+T+++9n0qRJ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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualising the test results\n",
    "plt.plot(real_price_test, color = 'red', label = 'Real Stock Price')\n",
    "plt.plot(predicted_stock_test, color = 'blue', label = 'Predicted Stock Price')\n",
    "plt.title('BiLSTM test Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('Stock Price')\n",
    "plt.grid(True)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "BiLSTM模型的均方误差是: 8.633169\n",
      "BiLSTM模型的均方根误差是: 2.938226\n",
      "BiLSTM模型的平均绝对误差是: 2.378653\n",
      "BiLSTM模型的R-squared是: 0.883235\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n",
    "import math\n",
    "##########evaluate##############\n",
    "# calculate MSE 均方误差 ---> E[(预测值-真实值)^2] (预测值减真实值求平方后求均值)\n",
    "mse = mean_squared_error(predicted_stock_test, real_price_test)\n",
    "# calculate RMSE 均方根误差--->sqrt[MSE]    (对均方误差开方)\n",
    "rmse = math.sqrt( mean_squared_error(predicted_stock_test, real_price_test))\n",
    "# calculate MAE 平均绝对误差----->E[|预测值-真实值|](预测值减真实值求绝对值后求均值）\n",
    "mae = mean_absolute_error(predicted_stock_test, real_price_test)\n",
    "\n",
    "r2=r2_score(predicted_stock_test, real_price_test)\n",
    "\n",
    "print('BiLSTM模型的均方误差是: %.6f' % mse)\n",
    "print('BiLSTM模型的均方根误差是: %.6f' % rmse)\n",
    "print('BiLSTM模型的平均绝对误差是: %.6f' % mae)\n",
    "print('BiLSTM模型的R-squared是: %.6f' % r2)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "conda_amazonei_tensorflow2_p36",
   "language": "python",
   "name": "conda_amazonei_tensorflow2_p36"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
